Создание универсального целочисленного принтера - это хорошо, но все, но писать один код, который печатает много разных чисел, громоздко. Разве не было бы проще создать скрипт, который выводит число, но также дает вам новый скрипт для получения следующего числа?
Вызов:
Напишите код, который выводит одно целое число N
и исполняемый код. Следующий код должен выводить N+1
и код, который может выводить N+2
. Продолжайте этот путь, пока не достигнете N = 15
. (Последний напечатанный номер должен быть 15).
Правила:
- Нет ввода (предположим, что вход пуст).
- Полная программа или функция или другие удобные форматы допускаются.
- Первый код должен выводиться
1
. - Вы не можете вывести ведущие нули. Т.е. вы не можете печатать
01
для1
. - Вывод должен быть в формате
N, Code_for_N+1
. Обратите внимание, что выходные данные разделены запятой и одним пробелом. Код дляN+1
не имеет кавычек.N , Code_for_N+1
не принимается (пробел перед запятой). Конечные переводы в порядке. - Первый символ (ы) вывода должен быть числом. (Без начальных пробелов или
ans = N
). - Напечатанный номер не должен быть частью следующего кода (код может содержать этот номер, но вы не можете принять выходной номер как часть кода)
- Пример: Выход для
N=2
может быть:2, printer 2
. В данном случаеprinter 2
это код дляN=3
. Вы не можете использовать весь вывод:2, printer 2
как код дляN=3
.
- Пример: Выход для
- Сценарии могут быть на разных языках
- Типы данных не имеют значения (число может быть строкой), но они не могут быть окружены ничем (кавычки, скобки и т. Д.).
- Если есть код для
N=15
вывода, то он должен либо напечататьSTOP!
(см. Бонус), либо вообще ничего не печатать (даже пробел или перевод строки).- Код для
N=15
сбоя не может (но вывод в STDERR в порядке). - Вы дисквалифицированы, если выходной код для
N=15
распечаток16
или чего-либо еще (кроме бонусного случая).
- Код для
- Встроенные операторы Quine не допускаются.
- Доступ к исходному файлу через файловую систему запрещен.
Бонус:
-10 байт, если код, который печатает 15, также создает код, который печатает " STOP!
"
Примеры, использующие синтаксис Python: (очевидно, они будут работать только для выбранных целых чисел, а не от 1 до 15).
N = 1
print "1, print 2"
1, print 2
---
N = 15
print 15
15
---
N = 15 (Qualifies for the -10 bytes bonus)
print "15, print 'STOP!'"
15, print 'STOP!'
print 'STOP!'
STOP!
----
N = 15 (Qualifies for the -10 bytes bonus)
print "15, disp('STOP!')"
15, disp('STOP!') (disp('STOP!') outputs STOP! in MATLAB)
----
N = 15 (This one is not OK. The submission is disqualified)
print "15, print 16"
15, print 16
Действуют стандартные правила игры в гольф! Наименьший код (для N = 1) в байтах побеждает!
14, print(14+1)
или нет?
f=>f+""
будет недействительным? (f+""
возвращает код конструкции функции.)