"กบตัวเต็มวัย" เป็นสัตว์ประหลาดที่กระโดดข้ามจำนวนเต็มจนกระทั่งมันมาถึง 3 หรือ 19 ...
โปรแกรมของคุณควรยอมรับจำนวนเต็มnเป็นอินพุตและเอาต์พุตผลลัพธ์ของอัลกอริทึมด้านล่าง ( 3หรือ19)
สำหรับจำนวนเต็มที่กำหนดn >= 2:
- อนุญาต
fเป็นตำแหน่งของกบ มันถูกตั้งค่าเริ่มต้นเป็นn - ถ้า
f = 3หรือf = 19: กบกระโดดหยุด -fหยุดโปรแกรมและการส่งออก - ถ้า
fเป็นสำคัญ:2×f-1กบกระโดดไปยังตำแหน่งที่ กลับไปที่ขั้นตอนที่ 2 - ถ้า
fคอมโพสิต: ขอdเป็นfตัวหารที่ใหญ่ที่สุดf-dกบกระโดดไปยังตำแหน่งที่ กลับไปที่ขั้นตอนที่ 2
ตัวอย่าง:
ตัวอย่างด้วยn = 5:
5 > 9 > 6 > 3 stop
3โปรแกรมควรเอาท์พุท
อีกตัวอย่างด้วยn = 23:
23 > 45 > 40 > 35 > 28 > 21 > 14 > 7 > 13 > 25 > 20 > 15 > 10 > 5 > 9 > 6 > 3 stop
3อีกครั้งโปรแกรมควรเอาท์พุท
กรณีทดสอบ:
10 => 3
74 => 19
94 => 3
417 => 3
991 => 19
9983 => 19
คุณสามารถสันนิษฐานได้1 < n < 1000000(ฉันได้ตรวจสอบว่าโปรแกรมสิ้นสุดลงสำหรับค่าเหล่านี้)
3หรือ19เราสามารถเปลี่ยนรายการที่ 2 ได้ในอัลกอริทึมที่จะบอกว่าถ้ากบเข้าห่วงใด ๆ (เจอตำแหน่งที่เคยเห็นมาก่อน) จากนั้นก็หยุดการกระโดดและคืนค่าที่เล็กที่สุด สมาชิกของวงนั้น
