ในอาณาจักรที่ห่างไกลผู้เป็นราชินีแห่งหมากรุกใช้เวลาเดินข้ามเส้นทางวนทุกวันตั้งแต่ 1 ถึงn
ไม่สนใจที่จะตามเกลียวตัวเอง แต่เพียงแค่เคลื่อนไหวราชินีตามที่เธอต้องการบนกระดานหมากรุก ราชินีเป็นที่รักของอาสาสมัครของเธอและพวกเขาจดบันทึกทุก ๆ ตารางที่เธอไปเยี่ยมบนเส้นทางของเธอ เมื่อราชินีสามารถเริ่มเดินบนจัตุรัสใดก็ได้และจบลงที่จัตุรัสใด ๆ การเดินของราชินีที่สั้นที่สุดที่เธอสามารถทำได้คืออะไร?
ความท้าทาย
กำหนดเกลียวจำนวนเต็มบนกริดสี่เหลี่ยมให้เขียนฟังก์ชันที่ส่งคืนหนึ่งในเส้นทางที่สั้นที่สุด (นับจากจำนวนเซลล์ที่เดินทาง) ระหว่างสองตัวเลขบนกริดเกลียวนี้โดยใช้การเคลื่อนที่ของราชินีหมากรุก
ยกตัวอย่างเช่นจาก16
การ25
:
25 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17
บางเส้นทางที่เป็นไปได้รวมและ16, 4, 2, 10, 25
16, 5, 1, 9, 25
กฎระเบียบ
- อินพุตจะเป็นจำนวนเต็มบวกสองค่าใด ๆ
- ผลลัพธ์จะเป็นเส้นทางของจำนวนเต็ม (รวมทั้งจุดปลายทั้งสอง) ข้ามเกลียวโดยใช้การเคลื่อนที่แบบมุมฉากและแนวทแยง
- ความยาวของเส้นทางถูกนับโดยจำนวนเซลล์ที่เดินทาง
- คำตอบของคุณอาจเป็นโปรแกรมหรือฟังก์ชั่น
- นี่คือรหัสกอล์ฟดังนั้นจำนวนไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ
เช่นเคยหากปัญหายังไม่ชัดเจนโปรดแจ้งให้เราทราบ ขอให้โชคดีและการเล่นกอล์ฟที่ดี!
กรณีทดสอบ
>>> queen_spiral(4, 5)
4, 5
>>> queen_spiral(13, 20)
13, 3, 1, 7, 20
>>> queen_spiral(14, 14)
14
>>> queen_spiral(10, 3)
10, 11, 3
>>> queen_spiral(16, 25)
16, 4, 2, 10, 25
>>> queen_spiral(80, 1)
80, 48, 24, 8, 1