Эта программная головоломка вдохновлена другим вопросом, который был задан здесь вчера, но который был удален автором ...
Соревнование:
Создайте исполняемый двоичный файл (двоичный файл Windows .EXE или Linux) с помощью Visual C # (или вашей любимой C # IDE), который выводит следующий текст в стандартный вывод:
Main() is the main method of C# programs!
... без использования 4 последовательных букв MAIN, появляющихся в любом исходном файле!
Ноты:
- Если ваш исходный код содержит текст
remainder
(например), он содержит 4 последовательных буквы MAIN, однако, если он содержитmxain
4 буквы, они больше не будут последовательными, поэтомуmxain
это будет разрешено. Вам не разрешается запускать какие-либо программы, кроме C # IDE, а также не изменять настройки C # IDE для запуска других программ (кроме тех, которые он обычно запускает, таких как компилятор C #).
В противном случае вы можете просто сказать: «Я пишу программу на Pascal, используя C # IDE, и вызываю компилятор Pascal на этапах« pre-build »моего проекта на C #».
Это было бы слишком просто.
Пользователи IDE, которые могут расширяться с помощью «плагинов» (или аналогичных) или которые имеют встроенные редакторы двоичных файлов (hex-редакторы), будут иметь слишком большое преимущество перед пользователями других IDE C #.
Поэтому эти подвиги также не должны использоваться.
- Использование других не-ASCII-редакторов (таких как редактор диалоговых окон) явно разрешено!
- Пользователь, задающий первоначальный вопрос, предложил использовать обратную косую черту в именах функций, например, так:
static void M\u0061in()
поскольку этот ответ уже был прочитан другими пользователями, он больше не будет принят! - Пользователь спросил, будет ли разрешено просто вводить файл .EXE в редактор исходного кода и сохранять файл как «.exe» вместо «.cs». Ответ: Я не сомневаюсь, что это возможно, потому что и действительные двоичные файлы Windows и Linux содержат NUL-байты. Однако, если вы найдете правильный двоичный файл, который может быть создан таким образом, у вас есть правильное решение.
Название этого сайта - «Программирование головоломок и Code Golf» - это «Головоломка программирования», а не «Code Golf». Задача состоит в том, чтобы найти работающее решение перед всеми остальными пользователями, а не найти решение короче, чем все остальные. решения.
Поэтому первый пост, описывающий рабочее решение, побеждает !
Удачи!
Кстати: у меня есть решение, работающее под Visual C # Express 2010.