Hepimiz Fibonacci dizisine aşinayız :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
Ancak, bunun yerine önceki 2 girişin dijital toplamınıf(n) = f(n-1) + f(n-2)
alacağız .
Dizi hala başlamalı 0, 1
, bundan sonra farklılıklar hızla ortaya çıkıyor. Bu liste 0 indeksli, 1 indisli de kullandığınız durumu kullanabilirsiniz.
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)
Not: Mücadelenin kendisini gönderinceye kadar tekrarı fark etmedim ve burada yeni bir Fibonacci mücadelesi yazmanın imkansız olacağını düşünüyordum.
Göreviniz, bir numara verildiğinde n
, bu dizinin digit basamağını çıkarmanızdır.
İlk 3 basamak: [0,1,1]
,
24 basamaklı tekrarlanan model: [2,3,5,8,13,12,7,10,8,9,17,17,16,15,13,10,5,6,11,8,10,9,10,10]
İpucu: Bu tekrarı istifade etmek için kullanabilirsin.
Bu kod golf , en düşük bayt sayımı kazanır.
BONUS: Cevabınızdaki tekrarı kullanırsanız, sıradaki tekrarlamadan faydalanan ve 100 puanlık bir lütuf olan en düşük bayt sayısı cevabını vereceğim. Bu, orijinal cevabınızın ardından, orijinal cevabınızın bir parçası olarak gönderilmelidir. Bu yayını neden bahsettiğimin bir örneği olarak gör: https://codegolf.stackexchange.com/a/108972/59376
Bu bonusa hak kazanabilmek için kodunuzun O(1)
bir açıklama ile ( ) sürekli olarak çalışması gerekir .
Bonus Kazanan: Dennis https://codegolf.stackexchange.com/a/108967/59376 <Dennis kazandı.
En Benzersiz Uygulama: https://codegolf.stackexchange.com/a/108970/59376
(Ayrıca, doğru cevap seçildikten sonra sonlandırılmış 100 puan alacaksınız)
%24
"normal" bir çözüme mu?
O(1)
. Eğer tekrarı gerçekten kullanıyorsa, kodunuz sürekli olarak çalışıyor olmalıdır.