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 X
dan Y
menjadi negatif? Itu mungkin juga akan membatalkan semua jawaban yang ada.
8,1,8,9
dan 9,1,8,9
untuk memastikan bahwa N=1
penanganan kasus mendeteksi nilai yang tidak berulang X
serta Y
nilainya. (Jika Anda ingin menangani 0,0
kasus, Anda harus menambahkannya juga.)
N==1
adalah kasus yang aneh.