คุณจะได้รับจำนวนเต็ม nonary (ฐาน 9) ที่ไม่ใช่ลบประกอบด้วยตัวเลข 0 ถึง 8 ตามปกติ อย่างไรก็ตามจำนวนตัวเลขในจำนวนนี้ (ไม่มีเลขศูนย์นำหน้า) เป็นรูปสี่เหลี่ยมจตุรัส
ด้วยเหตุนี้จึงสามารถจัดเรียงตัวเลขในตารางสี่เหลี่ยม (โดยยังคงคำสั่งการอ่านไว้)
ตัวอย่างกับ 1480 (1125 ฐาน 10):
14
80
ตอนนี้ขอหลักในตาราง nonary ทุกบ่งบอกถึงการเคลื่อนไหวไปยังพื้นที่ตารางอื่น (ที่มีเงื่อนไขขอบเขตระยะ ):
432
501
678
นี่เป็นการบอกว่า
0 = stay still
1 = move right
2 = move right and up
3 = move up
...
8 = move right and down
ดังนั้นถ้าในตาราง 1480 คุณเริ่มที่ 4 คุณก็เลื่อนขึ้น (จำ pbc) แล้วไปทางซ้าย 8 ซึ่งหมายความว่าคุณเลื่อนไปทางขวาและกลับไปที่ 4 เริ่มรอบด้วยระยะเวลา 2
โดยทั่วไปกระบวนการนี้จะดำเนินต่อไปจนกว่าคุณจะไปที่ 0 หรือสังเกตเห็นวงจร (A 0 ถือเป็นรอบที่มีระยะเวลา 1)
ในกรณีของ 1480 รอบระยะเวลาถึงในที่สุดที่เริ่มต้นแต่ละหลัก 4 2 2 2 1
ตามลำดับ
สำหรับกริดที่ใหญ่กว่าตัวเลขเหล่านี้อาจใหญ่กว่า 8 แต่เรายังสามารถใช้พวกมันเป็น "หลัก" ในจำนวน nonary ใหม่ (เพียงค่าสัมประสิทธิ์ของ 9 ^ n ราวกับว่าพวกเขาเป็นหลัก):
2*9^3 + 2*9^2 + 2*9 + 1 = 1639 (base 10) = 2221 (base 9)
เราจะเรียกสิ่งนี้ว่าความแข็งแกร่งของหมายเลข nonary ดั้งเดิม ดังนั้นจุดแข็งของ 1480 คือ 1639 (ฐาน 10) หรือเทียบเท่า 2221 (ฐาน 9)
ท้าทาย
เขียนโปรแกรมที่สั้นที่สุดที่บอกว่าจุดแข็งของจำนวน nonary นั้นมากกว่าหรือน้อยกว่าหรือเท่ากับจำนวน nonary เอง (คุณไม่จำเป็นต้องคำนวณความแข็งแกร่ง)
ข้อมูลที่ป้อนจะเป็นตัวเลข nonary ที่ไม่ใช่ลบซึ่งมีตัวเลขสองหลัก (และไม่มีศูนย์นำหน้านอกเหนือจากกรณีพิเศษ 0 ของตัวเอง) มันควรมาจากบรรทัดคำสั่งหรือ stdin
เอาต์พุตควรไปที่ stdout ดังนี้:
G if the strength is larger than the original number (example: 1480 -> strength = 2221)
E if the strength is equal to the original number (example: 1 -> strength = 1)
L if the strength is less than the original number (example: 5 -> strength = 1)
Fun Bonus Challenge:
อะไรคืออินพุตที่สูงสุดที่คุณสามารถพบได้นั่นเท่ากับความแข็งแกร่งของมัน (มีข้อ จำกัด หรือไม่)