ท้าทาย
คุณต้องเขียนโปรแกรมที่รับจำนวนเต็มบวกn
เป็นอินพุตและส่งออกn
หมายเลขฟีโบนักชี (ตัดให้สั้นลงเหมือน Fib # ตลอด) ที่มีฟิปส์n
# เป็นตัวหาร สำหรับวัตถุประสงค์ของการท้าทายนี้, 1
ลำดับฟีโบนักชีเริ่มต้นด้วย
นี่คือตัวอย่างบางส่วนที่คุณสามารถใช้เป็นกรณีทดสอบหรือเพื่อเป็นตัวอย่างในการอธิบายความท้าทาย (สำหรับกรณีหลังโปรดแสดงความคิดเห็นลงด้านล่างเพื่ออธิบายสิ่งที่คุณพบว่าไม่ชัดเจน)
n=1
Fib#s: 1
^1 1st Fib# that contains a 1 (1st Fib#)
Output: 1
n=2
Fib#s: 1, 1
^1 ^2 2nd Fib# that contains a 1 (2nd Fib#)
Output: 1
n=3
Fib#s: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233
^1 ^2 ^3 3rd Fib# that contains a 2 (3rd Fib#)
Output: 233
n=4
Output: 233
n=5
Output: 6765
n=6
Output: 28657
n=7
Output: 1304969544928657
n=8
Output: 14472334024676221
n=9
Output: 23416728348467685
n=10
Fib#s: 1, ..., 34, 55, 89, ..., 63245986, 102334155, 165580141, ..., 2880067194370816120, 4660046610375530309
^1 ^2 ^3 ^10 10th Fib# that contains a 55 (10th Fib#)
Output: 4660046610375530309
และเช่นเคยนี่คือcode-golfดังนั้นควรนับไบต์ที่ต่ำที่สุด
หากสิ่งที่ทำให้สับสน / ไม่ชัดเจนโปรดแสดงความคิดเห็น
(ความท้าทายนี้อ้างอิงจากความท้าทายอื่นที่ฉันโพสต์: พิมพ์ตัวที่ n ที่ประกอบด้วย n )
n=25
(ผลลัพธ์มี 1186 หลัก) จากนั้นถูกฆ่าเพราะn=26
(3085 หลักรวบรวมในแล็ปท็อปของฉันเอง) ดูเหมือนว่าจะมีปัญหาในการกระโดดเมื่อใดก็ตามที่fib(n)
ได้รับหนึ่งหลัก (ตามที่คาดหวัง) การกระโดดครั้งต่อไปวันที่ 31 มี 12990 หลักในผลลัพธ์สุดท้าย
n=5
testcase เพราะฉันเพิ่งทำผิดพลาดโง่ที่ฉันเขียนเช็คที่นับจำนวนหลายครั้งถ้ามันมี substring มากกว่าหนึ่งครั้ง จะจับว่าเพราะn=5
55