Anda mungkin akrab dengan urutan Fibonacci di mana dua istilah pertama adalah 0, 1
(atau kadang-kadang 1, 1
) dan setiap istilah setelah itu adalah jumlah dari dua sebelumnya. Dimulai seperti ini:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Kadang-kadang, urutan berisi angka-angka yang memiliki pola tertentu yang saya temukan menarik: perbedaan antara setiap pasangan digit yang berdekatan sama dengan pasangan lainnya. Misalnya, dalam urutan yang dimulai dengan 0, 1
, istilah ke 18 adalah 987
. 9-8=1
dan 8-7=1
. Saya agak puas.
Tantangan
Diberi dua nilai awal F(0)
dan F(1)
, output setiap angka dalam urutan yang dihasilkan oleh F(n) = F(n-1) + F(n-2)
yang memenuhi kriteria berikut:
- Perbedaan antara setiap pasangan digit yang berdekatan adalah sama dengan pasangan lainnya
- Paling tidak panjangnya tiga digit (angka 1 dan 2 angka tidak menarik untuk pola ini)
Memasukkan
- Dua bilangan bulat non-negatif kurang dari 10 ** 10 (10 miliar)
Keluaran
- Semua bilangan bulat yang kurang dari 10 ** 10 dan memenuhi kriteria di bagian Tantangan
- Dapat diterima untuk digit keluaran lebih besar dari 10 ** 10 tetapi itu bukan keharusan
- Mengingat bahwa angka berulang memenuhi pola (misalnya
777
), ada kemungkinan bahwa ada angka tak terbatas yang memenuhi kriteria tetapi program Anda tidak diharuskan untuk menghasilkan selamanya - Jika tidak ada bilangan bulat seperti itu, output apa pun yang Anda inginkan asalkan bukan angka (tidak ada, null, array kosong, pesan kesalahan, wajah sedih, dll.)
- Jika angka yang cocok dengan pola muncul lebih dari satu kali dalam urutan, Anda dapat menampilkannya sekali atau sebanyak yang terjadi
- Jika ada input yang memenuhi kriteria, itu harus dimasukkan dalam output
Aturan
- Input dan Output dapat dalam format standar apa pun
- Celah standar dilarang
- Ini adalah kode-golf sehingga kode terpendek dalam byte menang
Contoh / Kasus Uji
Input , Output
[1,10] , []
[0,1] , [987]
[2,1] , [123]
[2,3] , [987]
[61,86] , [147]
[75,90] , [420]
[34,74] , [1234]
[59,81] , [2468]
[84,85] , [7531]
[19,46] , [111]
[60,81] , [222]
[41,42] , [333]
[13,81] , [444]
[31,50] , [555]
[15,42] , [666]
[94,99] , [777]
[72,66] , [888]
[3189,826] , [888888888]
[15,3] , [159,258]
[22,51] , [321,1357]
[74,85] , [159,4444]
[27,31] , [147,11111]
[123,0] , [123,123,123,246,369]
[111,0] , [111,111,111,222,333,555,888]
[111,222] , [111,222,333,555,888]
[33345,692] , [987654321]
[3894621507,5981921703] , [9876543210]
[765432099,111111111] , [111111111,876543210,987654321]
[1976,123] , [123, 2222, 4321, 6543, 45678]
[1976, 123] -> [123, 2222, 4321, 6543, 45678]
,[3189, 826] -> [888888888]
,[33345, 692] -> [987654321]