CJam , 39 33 30 바이트
33q:X~
입력으로
2017:N=N{33')X+`":X~"+}?
온라인으로 사용해보십시오!
이것은 따옴표를 쓰고 이스케이프 할 필요가 없다는 점을 제외하고는 이전 버전과 기능상 동일합니다. 이전 버전 :
33"2017:N=N{33')X+`\":X~\"+}?":X~
어떤 출력
33")2017:N=N{33')X+`\":X~\"+}?":X~
어떤 출력
33"))2017:N=N{33')X+`\":X~\"+}?":X~
등등. 마지막으로, 프로그램
33"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))2017:N=N{33')X+`\":X~\"+}?":X~
출력 2017
.
작동 원리
33 Push 33
q Read the input: 2017:N=N{33')X+`":X~"+}?
:X Store it in variable X
~ Eval it
그러나 입력의 코드는 실제로 무엇을합니까?
2017:N Push 2017 and store it in N
= Check if the other number (33 on first run) equals 2017
N If it does, push 2017
{ Else, execute this block:
33 Push 33
') Push the ) character
X Push X
+ Concatenate with ')
` String representation (wraps it in quotes, escapes quotes inside)
":X~" Push the string ":X~"
+ Concatenate
}? (end of block)
프로그램의 첫 번째 숫자가 2017이 아닌 경우 해당 숫자가 이번보다 한 번 더 증가하는 프로그램을 출력합니다. 2017과 같으면 (즉, 1984 배 증가한 경우) 간단히 2017을 누르고 종료합니다. 첫 번째 숫자는 33 (코드 길이)으로 시작합니다. 증가 할 때마다 코드 길이가 1 씩 증가하고 숫자는 1 씩 증가하므로 33이 2017이 될 정도로 증가하면 코드 길이는 2017 바이트가됩니다.
;;;
허용 된 NOP 만 추가하고 있습니까?