พื้นหลัง
คุณกำลังทำงานให้กับผู้ผลิตเกมกระดานบางเกมและจำเป็นต้องผลิตแผ่นไม้ที่มีตัวเลขตั้งแต่ 0 ถึงn ที่สลักไว้สำหรับเกมบางเกม แต่ไม่ต้องกังวลใจต่อกระเบื้องบางส่วนจะกลายเป็นแยกไม่ออกเช่นและ6 9เพื่อหลีกเลี่ยงนี้คุณมีเพื่อให้ตัวเลขที่จะสับสนกับคนอื่น ๆ (และเฉพาะผู้) มีจุด disambiguating เช่นคุณจะมีกระเบื้องเหมือนหรือ9.6089.
น่าเสียดายที่คุณต้องใช้อุปกรณ์แกะสลักไม้แบบเก่า แต่ยังสามารถตั้งโปรแกรมได้ซึ่งอินเทอร์เฟซเสียจนคุณต้องเข้ารหัสตัวละครทุกตัวของโปรแกรมด้วยมือในกระบวนการที่น่าเบื่ออย่างไม่น่าเชื่อ โชคดีที่อุปกรณ์เข้าใจภาษาการเขียนโปรแกรมที่มีอยู่ทั้งหมด ดังนั้นคุณกำลังมองหาโปรแกรมที่สั้นที่สุดที่จะพิมพ์กระเบื้องดังกล่าว
งานจริง
เขียนโปรแกรมสั้นที่สุดที่:
- รับจำนวนเต็มบวกnเป็นอินพุต การอ่านอินพุตนั้นขึ้นอยู่กับคุณอย่างไร
- พิมพ์ตัวเลขแต่ละตัวตั้งแต่ 0 ถึงn (รวม 0 และn ) หนึ่งครั้งตามลำดับที่คุณเลือกโดยคั่นด้วยอักขระช่องว่างเดียว (รวมถึงบรรทัดใหม่) ตัวเลขจะถูกพิมพ์โดยไม่มีศูนย์นำหน้า
- ผนวกจุด (.) กับทุกหมายเลขที่เปลี่ยนเป็นตัวเลขอื่นหมายเลขที่ถูกต้องเมื่อหมุนโดยπ (180 °) แม้ว่าจำนวนนั้นจะมากกว่าn แบบอักษรของคุณ 0 และ 8 คือการหมุนแบบสมมาตรและ 9 คือการหมุน 6 แบบที่ 2 และ 5 นั้นแตกต่างกันตามการหมุน 1 ไม่ใช่การหมุนแบบสมมาตร ตัวเลขที่มีเลขศูนย์นำหน้าไม่ถูกต้อง
ตัวอย่าง
แต่ละหมายเลขต่อไปนี้ต้องพิมพ์ด้วยวิธีนี้
2
4
5
6.
8
9.
16
60
66.
68.
69
906
909.
8088.
9806.
9886
9889.
8088.
ตัวอย่างของคุณเป็นหมายเลขที่ไม่ปลอดภัยและไม่มี 6 หรือ 9
60
จะเป็น60.
?