Muhtemelen bildiğiniz gibi, bir Fibonacci Sayı serideki önceki iki sayının toplamıdır.
Bir Fibonacci Rakamı, önceki iki basamağın toplamıdır .
Örneğin, seri başlangıcı için 1,1
için seri şöyle olacaktır 1,1,2,3,5,8,13,4,7,11,2...
: Değişiklik , eklemek 13
yerine, eklemek yerine, sonra gerçekleşir . Dizi sonunda dönüyor , serinin başladığı yer aynı ve burada .8+13
1+3
4+7=11
1+1=2
Başka bir örnek için, seri başlar 2,2
: 2,2,4,6,10,1,1,2,3,5,8,13,4,7,11,2,3...
. Bu, benzersiz bir şekilde başlar, ancak rakamlar bir kez toplandığında, 10
sonuçta kalırsınız 1+0=1, 0+1=1
ve seri devam eder - ve döngüler - 1,1
seriyle aynı şekilde devam eder .
Meydan okuma
Bir tamsayı girişi verildiğinde 0≤n≤99
, Fibonacci Rakam serisindeki döngüyü bu iki rakamdan başlayarak hesaplayın. ( Bu aralığın dışındaki tam sayıları dikkate almanıza kesinlikle izin verilir , ancak bu gerekli değildir.) Bir basamaklı bir giriş verilirse, kodunuz seri başlangıcını belirtmek için yorumlamalıdır 0,n
.
İki basamaklı olan döngüde bütün numaralar zorunluluk . Yani, örneğin, için döngü 1,1
içerecektir 13
değil 1,3
.
Çıktı, döngüdeki ilk sayı ile başlar. Yani, yukarıdaki kısıtlamalara dayanarak,1,1
2
, o zamandan beri başlar 1,1
ve 11
ayrı olarak sayılır.
Çıktının her sayısı, tutarlı olduğu sürece, istediklerinizle ayrılabilir. Örneklerimin hepsinde virgül kullanıyorum, ancak boşlukları, satır sonlarını, rasgele harfleri vb. Her zaman aynı ayırım kullandığınız sürece izin verilir. Bu yüzden 2g3g5g8g13g4g7g11
yasal bir çıktı1
ama 2j3g5i8s13m4g7sk11
değil. Tutarlı bir ayırıcıyla ayrılmış doğru sırada doğru numaralara sahip olmak koşuluyla dizeleri, listeleri, dizileri ne olursa olsun kullanabilirsiniz. Çıktının tamamının parantez içine alınmasına da izin verilir (ör. (5,9,14)
Veya [5,9,14]
, vb.).
Test Durumları:
1 -> 2,3,5,8,13,4,7,11
2 -> 2,3,5,8,13,4,7,11
3 -> 11,2,3,5,8,13,4,7
4 -> 3,5,8,13,4,7,11,2
5 -> 2,3,5,8,13,4,7,11
6 -> 3,5,8,13,4,7,11,2
7 -> 14,5,9
8 -> 13,4,7,11,2,3,5,8
9 -> 11,2,3,5,8,13,4,7
0 -> 0
14 -> 5,9,14
59 -> 5,9,14
Bu kod-golf , bu yüzden en düşük bayt sayısı kazanır.
14
ve 59
aynı sonucu verdim . Eğer 59
başlangıç olarak 5,9
ve bu döngünün bir parçası olarak izin verildiyse yorumlandığında kesinlikle döngünün 14
başlangıcı mı olmalı?
0,1,1,2,3,5,8,13,4,7,11,2,3
. Döngünün ilk tekrarladığı an ikinci olur 2
.
1,4,5,9,14,5
ve 5,9,14,5,9
. İkisi de ikinci ile başlayarak tekrar eder 5
. Daha önce de söylediğim gibi, sadece girdi bölünmüş durumda; sonraki sayılar rakamlarını sırayla bir arada tutar.