Orijinal olarak @DJMcMayhem tarafından icat, N-Bonacci dizisi, bu sorunun , 0 ve 1 tamsayıları başlayarak ve daha sonra bir sonraki bir sayı üretmek için bir önceki N sayısına eklenmesi ile oluşturulur dizisidir. Özel N-bonacci dizisi, 0 ve 1 dışında bir sayı ile başlayan ve X ve Y olarak adlandırılacak bir N-bonacci dizisidir. N, dizide zaten bulunan terimlerin sayısından büyükse, tüm mevcut olanları ekleyin terimleri.
Yani örneğin, normal fibonacci dizisi, kime sorduğunuza bağlı olarak bir N 2 (önceki iki öğeyi alır) ve X ve Y 0 ve 1 veya 1 ve 1'dir.
Senin görevin:
Girilen bir tamsayının (A) sonraki üç tamsayı tarafından oluşturulan özel N-bonacci dizisinin bir parçası olup olmadığını kontrol eden bir program veya işlev yazmalısınız (ikinci girişi N olarak ve üçüncü ve dördüncü olarak X ve Y olarak kullanarak) . Özel N = 1 kasasını kullandığınızdan emin olun.
Giriş:
Dört negatif olmayan tam sayı, A, N, X ve Y.
Çıktı:
A'nın N, X ve Y girişleri tarafından oluşturulan N-bonacci dizisinin bir parçası olup olmadığını belirten bir doğruluk / falsy değeri.
Test Durumları:
Input: Output:
13,2,0,1->truthy
12,3,1,4->falsy
4,5,0,1-->truthy
8,1,8,9-->truthy
9,1,8,9-->truthy
12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc.
puanlama:
Bu kod golf , bu yüzden bayt içindeki en düşük puan kazanır.
N=1istiyorsanız, soruda bunu söylemek isteyebilirsiniz, çünkü birçok cevap (mevcut tüm cevaplar dahil, bence) kesinlikle artan bir seriyi kabul eden bir başarısızlık durumuna sahip olacaktır. Ayrıca edebilir Xve Ynegatif? Bu muhtemelen mevcut tüm cevapları geçersiz kılacaktır.
8,1,8,9ve 9,1,8,9emin olmak için N=1vaka işleme olmayan tekrarlanan algılar Xdeğeri yanı sıra Ydeğerini. ( 0,0Davaları ele almak istiyorsanız, bunu da eklemelisiniz.)
N==1çok garip bir durum.