Urutan N-bonacci, awalnya ditemukan oleh @DJMcMayhem dalam pertanyaan ini , adalah urutan yang dihasilkan dengan memulai dengan bilangan bulat 0 dan 1, dan kemudian menambahkan angka N sebelumnya untuk menghasilkan angka berikutnya. Urutan N-bonacci khusus adalah urutan N-bonacci yang dimulai dengan pasangan angka selain 0 dan 1, yang akan dinamai X dan Y. Jika N lebih besar dari jumlah istilah yang sudah ada dalam urutan, cukup tambahkan semua yang tersedia ketentuan
Jadi misalnya deret fibonacci normal memiliki N of 2 (mengambil dua item sebelumnya), dan X dan Y dari 0 dan 1, atau 1 dan 1, tergantung pada siapa Anda bertanya.
Tugas Anda:
Anda harus menulis sebuah program atau fungsi yang memeriksa apakah integer yang dimasukkan (A) adalah bagian dari urutan N-bonacci khusus yang dihasilkan oleh tiga bilangan bulat berikutnya (menggunakan input kedua sebagai N, dan yang ketiga dan keempat sebagai X dan Y) . Pastikan Anda menangani kasus khusus N = 1.
Memasukkan:
Empat bilangan bulat non-negatif, A, N, X, dan Y.
Keluaran:
Nilai kebenaran / kepalsuan yang menunjukkan apakah A adalah bagian dari urutan N-bonacci yang dihasilkan oleh input N, X, dan Y.
Kasus uji:
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.
Mencetak:
Ini adalah kode-golf , sehingga skor terendah dalam byte menang.
N=1, Anda mungkin ingin menyebutkannya dalam pertanyaan, karena banyak jawaban (termasuk semua jawaban saat ini, saya pikir) akan memiliki kondisi kegagalan yang mengasumsikan serangkaian peningkatan yang ketat. Juga, bisakah Xdan Ymenjadi negatif? Itu mungkin juga akan membatalkan semua jawaban yang ada.
8,1,8,9dan 9,1,8,9untuk memastikan bahwa N=1penanganan kasus mendeteksi nilai yang tidak berulang Xserta Ynilainya. (Jika Anda ingin menangani 0,0kasus, Anda harus menambahkannya juga.)
N==1adalah kasus yang aneh.