การสร้างเครื่องพิมพ์จำนวนเต็มอเนกประสงค์นั้นดีและทั้งหมด แต่การเขียนรหัสเดียวที่พิมพ์ตัวเลขที่แตกต่างกันจำนวนมากนั้นยุ่งยาก มันจะไม่ง่ายกว่าหรือถ้าจะสร้างสคริปต์ที่ให้ผลตัวเลข แต่ให้สคริปต์ใหม่เพื่อให้ได้ตัวเลขถัดไป
ท้าทาย:
เขียนรหัสที่ส่งออกจำนวนเต็มเดียว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 คือ OK) - คุณจะถูกตัดสิทธิ์หากรหัสผลลัพธ์สำหรับงาน
N=15
พิมพ์16
หรือสิ่งอื่น (ยกเว้นกรณีโบนัส)
- รหัสสำหรับ
- ไม่อนุญาตให้ผู้ประกอบการควินสร้างขึ้น
- ไม่อนุญาตให้เข้าถึงไฟล์ต้นฉบับผ่านระบบไฟล์
โบนัส:
-10 ไบต์หากรหัสที่พิมพ์ 15 ยังสร้างรหัสที่พิมพ์ " STOP!
"
ตัวอย่างการใช้ Python syntax: (แน่นอนว่ามันจะใช้ได้กับจำนวนเต็มที่เลือกไม่ใช่ตั้งแต่ 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+""
ส่งคืนรหัสการก่อสร้างของฟังก์ชัน)