เราทุกคนคุ้นเคยกับลำดับฟีโบนักชี :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
อย่างไรก็ตามแทนที่จะf(n) = f(n-1) + f(n-2)
เราจะนำผลรวมดิจิตอลของ 2 รายการก่อนหน้า
ลำดับควรเริ่มต้นด้วย0, 1
หลังจากนั้นความแตกต่างจะปรากฏอย่างรวดเร็ว รายการนี้ได้รับการจัดทำดัชนี 0 คุณสามารถใช้ 1 ดัชนีเช่นกันซึ่งเป็นสถานะที่คุณใช้
f(0) = 0
f(1) = 1
f(2) = 1 # 0 + 1
f(3) = 2 # 1 + 1
f(4) = 3 # 1 + 2
f(5) = 5 # 2 + 3
f(6) = 8 # 3 + 5
f(7) = 13 # 8 + 5
f(8) = 12 # 8 + 1 + 3
f(9) = 7 # 1 + 3 + 1 + 2
f(10) = 10 # 1 + 2 + 7
f(11) = 8 # 7 + 1 + 0
f(12) = 9 # 1 + 0 + 8
f(13) = 17 # 8 + 9
f(14) = 17 # 9 + 1 + 7
f(15) = 16 # 1 + 7 + 1 + 7
f(16) = 15 # 1 + 7 + 1 + 6
f(17) = 13 # 1 + 6 + 1 + 5
f(18) = 10 # 1 + 5 + 1 + 3
f(19) = 5 # 1 + 3 + 1 + 0
f(20) = 6 # 1 + 0 + 5
f(21) = 11 # 5 + 6
f(22) = 8 # 6 + 1 + 1
f(23) = 10 # 1 + 1 + 8
f(24) = 9 # 8 + 1 + 0
f(25) = 10 # 1 + 0 + 9
f(26) = 10 # 9 + 1 + 0
f(27) = 2 # 1 + 0 + 1 + 0
(After this point it repeats at the 3rd term, 0-indexed)
หมายเหตุ: ฉันไม่ได้สังเกตเห็นการทำซ้ำจนกว่าฉันจะโพสต์ความท้าทายของตัวเองและที่นี่ฉันคิดว่ามันเป็นไปไม่ได้ที่จะเขียนอีกความท้าทาย Fibonacci ใหม่
งานของคุณคือให้ตัวเลขn
เอาท์พุทตัวเลขที่ n ของลำดับนี้
3 หลักแรก: [0,1,1]
,
รูปแบบการทำซ้ำ 24 หลัก: [2,3,5,8,13,12,7,10,8,9,17,17,16,15,13,10,5,6,11,8,10,9,10,10]
คำแนะนำ: คุณอาจสามารถใช้ประโยชน์จากการทำซ้ำนี้เพื่อประโยชน์ของคุณ
นี่คือโค้ดกอล์ฟจำนวนไบต์ต่ำสุดคือผู้ชนะ
โบนัส:หากคุณใช้การทำซ้ำในคำตอบของคุณฉันจะให้รางวัลคำตอบนับไบต์ต่ำสุดที่ใช้ประโยชน์จากการทำซ้ำในลำดับที่ได้รับรางวัล 100 คะแนน ควรส่งสิ่งนี้เป็นส่วนหนึ่งของคำตอบเดิมของคุณหลังจากคำตอบเดิมของคุณ ดูโพสต์นี้เป็นตัวอย่างของสิ่งที่ฉันกำลังพูดถึง: https://codegolf.stackexchange.com/a/108972/59376
ในการรับโบนัสนี้รหัสของคุณจะต้องทำงานในเวลาคงที่ ( O(1)
) พร้อมคำอธิบาย
ผู้ชนะโบนัส: เดนนิสhttps://codegolf.stackexchange.com/a/108967/59376 <เดนนิสชนะ
การติดตั้งที่ไม่ซ้ำใครมากที่สุด: https://codegolf.stackexchange.com/a/108970/59376
(จะได้รับ 100 คะแนนซึ่งจะสรุปหลังจากเลือกคำตอบที่ถูกต้องแล้ว)
%24
โซลูชัน "ปกติ" หรือไม่
O(1)
ฉันกำหนดการใช้ประโยชน์จากการทำซ้ำหมายถึง รหัสของคุณควรจะทำงานในเวลาคงที่หากมีการใช้ประโยชน์จากการทำซ้ำอย่างแท้จริง