Куайн - программа на C#, которая выводит свой код
Иногда на собеседованиях в различных компаниях просят написать программу, которая выводит на экран свой собственный код.
Класс таких программ называется Куайн (Quine) в честь американского логика и философа Willard Van Orman Quine (1908—2000).
На первый взгляд задачка достаточно нетривиальная, однако решение на С# выглядит коротко и изящно:
1: using System;
2: class A{static void Main(){string s=@"using System;
3: class A{{static void Main(){{string s=@{0}{1}{0};
4: Console.Write(s,'{0}',s);}}}}";
5: Console.Write(s,'"',s);}}
Если вам интересно узнать, как будет выглядеть такая программа для С++ или для других языков программирования, то вы можете зайти на ВикиПедию, в которой Куайнам посвящен целый раздел: https://ru.wikipedia.org/wiki/Quine
Comments
Anonymous
January 29, 2009
не работает, однако. вот так работает: 1: using System; 2: class A{static void Main(){string s=@"using System; 3: class A{{static void Main(){{string s=@{0}{1}{0}; 4: Console.Write(s,'{0}',s);}}}}"; 5: Console.Write(s,'"',s);}}Anonymous
February 11, 2009
По моему это просто копирование текста программы в переменную и потом ее вывод на консоль. А в чем смысл этого?Anonymous
February 15, 2009
Поправил багу