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 จะมีการส่งออกโปรแกรมที่จำนวนนั้นเพิ่มขึ้นหนึ่งครั้งมากกว่าครั้งนี้ ถ้ามันเท่ากับปี 2560 (นั่นคือเพิ่มขึ้น 1984 ครั้ง) ให้กด 2017 และยุติ หมายเลขแรกเริ่มต้นที่ 33 (ความยาวของรหัส); การเพิ่มขึ้นทุกครั้งจะเพิ่มความยาวรหัส 1 และตัวเลขนั้นเพิ่มขึ้น 1 ดังนั้นเมื่อ 33 เพิ่มขึ้นพอที่จะกลายเป็น 2017 รหัสก็จะมีความยาว 2017 ไบต์
               
              
;;;อนุญาตหรือไม่