В этом задании вы создадите программу, которая будет развиваться по мере прохождения веков ... До 2017 года.
Вызов
Всякий раз, когда в описании вызова говорится «программа», вы также можете прочитать «функция».
Ваше представление, когда выполнено, выведет программу, которая имеет длину THE LENGTH OF YOUR SUBMISSION
+ 1
байт.
Когда эта программа выполняется, она выводит программу длиной THE LENGTH OF YOUR SUBMISSION
+ 2
байт… и так далее.
Однако , когда ваша программа достигла длины в 2017 байт, она должна вместо этого вывести 2017
и выйти.
правила
- Вывод итоговой программы должен быть
2017
и только2017
. Это может быть строка или целое число, но оно должно читаться,2017
а не2017.0
или0x7E1
или иная подобная ерунда. - Нет стандартных лазеек .
- Только ваша первоначальная программа может требовать ввода, который будет добавлен к вашей учетной записи.
Таким образом, если ваша исходная программа имеет длину 324 символа и требует ввода 13 байт, ваш общий результат будет 324 + 13 = 337, а программа, которую она выводит, должна иметьдлину 338 байт.- Однако использование флагов командной строки (например,
perl -X
хорошо) - до тех пор, пока ваша исходная программа, а также все сгенерированные программы используют одни и те же флаги. Кроме того, они тоже учитываются по общему счету. Тире, косые черты и т. Д. Перед флагом командной строки не учитываются в сумме, поэтому, например,perl -X
считается одним дополнительным байтом.
- Однако использование флагов командной строки (например,
- Если вы возвращаете функцию, она должна быть действительной функцией, а не строкой, которая при оценке производит функцию.
- Неправильные квин (если ваша программа - квин) запрещены.
пример
Псевдокод, 99 байт
IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE PADDING)
Ваше представление может работать по-разному, если оно соответствует приведенным выше правилам.
;;;
Допускается ли просто добавление NOP, например ?