Куайн – программа на 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);}}

Если вам интересно узнать, как будет выглядеть такая программа для С++ или для других языков программирования, то вы можете зайти на ВикиПедию, в которой Куайнам посвящен целый раздел: http://ru.wikipedia.org/wiki/Quine

Comments (3)
  1. IlyaMasberg says:

    не работает, однако.

    вот так работает:

      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);}}

  2. Laserson says:

    По моему это просто копирование текста программы в переменную и потом ее вывод на консоль. А в чем смысл этого?

  3. MSDN Archive says:

    Поправил багу

Comments are closed.

Skip to main content