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 13yerine, eklemek yerine, sonra gerçekleşir . Dizi sonunda dönüyor , serinin başladığı yer aynı ve burada .8+131+34+7=111+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, 10sonuçta kalırsınız 1+0=1, 0+1=1ve seri devam eder - ve döngüler - 1,1seriyle 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,1içerecektir 13değil 1,3.
Çıktı, döngüdeki ilk sayı ile başlar. Yani, yukarıdaki kısıtlamalara dayanarak,1,12 , o zamandan beri başlar 1,1ve 11ayrı 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 2g3g5g8g13g4g7g11yasal bir çıktı1 ama 2j3g5i8s13m4g7sk11değ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.
14ve 59aynı sonucu verdim . Eğer 59başlangıç olarak 5,9ve bu döngünün bir parçası olarak izin verildiyse yorumlandığında kesinlikle döngünün 14baş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,5ve 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.