ได้รับแรงบันดาลใจจากคำถามนี้ซึ่งได้รับแรงบันดาลใจเพิ่มเติมจากข้อนี้เขียนโปรแกรมที่ใช้จำนวนเต็มสองจำนวนและเพิ่มพวกมันในแบบที่ไม่เหมือนใคร สำหรับการอ้างอิงตัวเลขจะถูกแสดงด้วยวิธีต่อไปนี้:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
โปรดทราบว่า 1 ใช้ทั้งสองส่วนทางด้านขวาไม่ใช่ด้านซ้าย มีอักขระพิเศษสองตัวที่สามารถสร้างได้ด้วยวิธีนี้ซึ่งไม่ใช่ตัวเลข ดูตารางเพิ่มเติมด้านล่าง:
| 0 1 2 3 4 5 6 7 8 9
--+--------------------
0 | 0 0 8 8 8 8 8 0 8 8
1 | 0 1 a 3 4 9 8 7 8 9
2 | 8 a 2 a 8 8 8 a 8 8
3 | 8 3 a 3 9 9 8 3 8 9
4 | 8 4 8 9 4 9 8 Q 8 9
5 | 8 9 8 9 9 5 6 9 8 9
6 | 8 8 8 8 8 6 6 8 8 8
7 | 0 7 a 3 Q 9 8 7 8 9
8 | 8 8 8 8 8 8 8 8 8 8
9 | 8 9 8 9 9 9 8 9 8 9
ข้อสังเกตที่เป็นประโยชน์:
- ตัวเลขใด ๆ บวกกับตัวเองเท่ากับตัวเอง
- 8 บวกเลขหลักใด ๆ เท่ากับ 8
- 2 บวก 1, 3 หรือ 7 เท่ากับตัวอักษร 'a' (ต้องเป็นตัวพิมพ์เล็ก)
- 4 บวก 7 เท่ากับ 'q' หรือ 'Q' ตัวเลือกของคุณ
- หมายเลขควรจัดชิดขวาดังนั้นควรเพิ่มตัวเลขจากขวาไปซ้าย หากตัวเลขหนึ่งมีตัวเลขมากกว่าตัวเลขอื่น ๆ ตัวเลขพิเศษที่จุดเริ่มต้นควรไม่เปลี่ยนแปลง ไม่มี 0 นำหน้ายกเว้นว่าตัวเลขจะเป็น 0 ทั้งหมด
- ตัวเลขทั้งหมดจะเป็น 0 หรือมากกว่า คุณไม่จำเป็นต้องจัดการกับเครื่องหมาย '-' (ส่วนใหญ่เป็นเพราะไม่มีความเหมาะสมสำหรับผลรวมของ '-' และ '1' หรือ '7')
โปรแกรมของคุณควรยอมรับจำนวนเต็ม 2 ตัวในรูปแบบใดก็ได้ที่คุณเลือกและส่งออกสตริงที่มี "ผลรวม" เมื่อคำนวณในลักษณะนี้ นี่คือรหัสกอล์ฟดังนั้นโปรแกรมของคุณควรมีขนาดเล็กที่สุด
ตัวอย่าง:
- อินพุต: 12345, 123. เอาท์พุท: 12389
- อินพุต: 88888, 42. เอาท์พุท: 88888
- อินพุต: 0, 23. เอาท์พุท: 28
- อินพุต: 120, 240. เอาท์พุท: a80
- อินพุต: 270, 42. เอาท์พุท: 2Q8 (หรือ 2q8)
- อินพุต: 1234567890, 1234567890 เอาต์พุต: 1234567890
Q
เป็นตัวพิมพ์เล็ก รูปร่างที่แท้จริงดูเหมือนจะเป็นq
มากกว่าQ
a
แน่นอนควรจะเป็นกรณีที่ต่ำกว่า แต่เนื่องจากA
รูปลักษณ์ที่แตกต่างอย่างสิ้นเชิง