W tym wyzwaniu zbudujesz program, który rośnie wraz z upływem wieków… Aż do 2017 roku.
Wyzwanie
Ilekroć w opisie wyzwania jest napisane „program”, można również przeczytać „funkcja”.
Po przesłaniu dane wyjściowe wygenerują program o długości THE LENGTH OF YOUR SUBMISSION
+ 1
bajtów.
Gdy ten program zostanie wykonany, wyświetli program o długości THE LENGTH OF YOUR SUBMISSION
+ 2
bajtów… i tak dalej.
Jednak gdy program osiągnie długość 2017 bajtów, musi zamiast tego wyjść 2017
i wyjść.
Zasady
- Wynik końcowego programu musi być
2017
i tylko2017
. To może być ciągiem lub liczbę całkowitą, ale musi to czytać2017
i nie2017.0
lub0x7E1
czy inne tego typu bzdury. - Brak standardowych luk .
- Tylko twój początkowy program może wymagać danych wejściowych, które zostaną dodane do twojego bajtu.
Więc jeśli twój program początkowy ma 324 znaki i zajmuje 13 bajtów, twój wynik będzie wynosił 324 + 13 = 337, a program przez niego wyprowadzony musi mieć 338 bajtów.- Używanie flag wiersza poleceń (np.
perl -X
) Jest jednak w porządku - o ile zarówno program początkowy, jak i wszystkie generowane programy używają tych samych flag. Również one liczą się do całkowitej liczby bajtów. Kreski, ukośniki itp. Przed flagą wiersza poleceń nie liczą się do sumy, więc np.perl -X
Liczy się jako jeden dodatkowy bajt.
- Używanie flag wiersza poleceń (np.
- Jeśli zwrócisz funkcję, powinna to być funkcja rzeczywista, a nie ciąg znaków, który po ocenie tworzy funkcję.
- Niewłaściwe quiny (jeśli twój program jest quine) są niedozwolone.
Przykład
Pseudokod, 99 bajtów
IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE PADDING)
Twoje zgłoszenie może działać inaczej, o ile będzie zgodne z powyższymi zasadami.
;;;
dozwolone, jest dozwolone?