Среди программистов тоже бывают умники. Предлагаем тем, кто считает себя программистом и (или) умником немного развлечься и написать свой квайн. Ниже для справки приводим отрывок из Википедии, объясняющий что такое квайн. Любознательные тут же полезут в Википедию и найдут там кучу примеров. Мы же предлагаем вам попробовать написать свой вариант программы, которая выводит сама себя.
Куайн, квайн (англ. quine) — компьютерная программа (частный случай метапрограммирования), которая выдаёт на выходе точную копию своего исходного текста. Следует заметить, что программы, использующие внешние данные, куайнами не считаются; то есть исключается прочтение текста программы из файла, ввод его с клавиатуры и так далее. Кроме того, не считается куайном «программа», не содержащая вообще никакого кода (вырожденный случай). В книге «Этюды для программистов» сформулировано более строгое условие: программа не должна пользоваться трюками, позволяющими получить доступ к своему исходному коду, хранящемуся в памяти загрузчика или интерпретатора. Поэтому куайн на бейсике 10 LIST — не совсем честный. Термин получил название от имени американского логика и философа Уилларда Ван Ормана Куайна (англ. Willard Van Orman Quine) (1908—2000), который занимался углубленным изучением косвенного самоупоминания (англ. indirect self-reference).
Так же предлагаем открытое голосование за лучшее решение, которое будет выбираться по числу баллов голосования за пост в комментариях (для зарегистрированных пользователей). Пишите код или в крайнем случае голосуйте за написанные программы.
Если же математика вам больше нравится чем программирование, то интересные задачи вы найдете на сайте: Занимательная математика. Логические задачи
using System;
using System.IO;
using System.Collections;
namespace ConsoleApplication1
{
class Class1
{
static void Main(string[] args)
{
StreamReader objReader = new StreamReader(@"D:\dove\base\ConsoleApplication1\ConsoleApplication1\Program.cs");
string sLine = "";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
foreach (string sOutput in arrText)
Console.WriteLine(sOutput);
Console.ReadLine();
}
}
}
Исходник делаем как часть исполнямого файла и всё)