Terinspirasi oleh Generate Keyboard Friendly Numbers .
Latar Belakang
Banyak bantalan nomor memiliki tata letak berikut:
789
456
123
0
Kami mendefinisikan lingkungan angka sebagai himpunan sel yang berdekatan secara orthogonal pada numpad yang ditunjukkan, termasuk dirinya sendiri. Misalnya, lingkungan 2 adalah {1,5,3,0,2}
dan lingkungan 0 adalah {1,2,0}
. Ada daftar lingkungan masing-masing angka di bawah ini, di atas kasus uji.
Kami mendefinisikan nomor ramah numpad sebagai bilangan bulat positif di mana, ketika ditulis dalam desimal tanpa memimpin nol, setiap digit kecuali yang pertama berada di lingkungan digit sebelumnya.
Sebagai contoh,
- 7856 adalah nomor ramah numpad karena 8 ada di lingkungan 7, 5 ada di tetangga 8, dan 6 ada di lingkungan 5.
- 1201 adalah nomor ramah numpad karena 2 ada di lingkungan 1, 0 di lingkungan 2, dan 1 di lingkungan 0.
- 82 bukan nomor ramah numpad karena 2 tidak di lingkungan 8.
- 802 bukan nomor ramah numpad karena 0 tidak di lingkungan 8 (lingkungan tidak membungkus).
Urutan OEIS terkait . Perhatikan bahwa urutan terkait ini berbeda karena urutannya 0berbatasan dengan 7bukan 1dan 2.
Tantangan
Diberikan bilangan bulat positif n
, kembalikan nomor n
-th atau n
nomor ramah numpad pertama , di mana yang pertama adalah 1. Anda dapat menggunakan pengindeksan berbasis 0, di mana nomor ramah ke-0 numpad adalah 1.
Lingkungan sekitar
Lingkungan masing-masing digit tercantum di sini:
0:{0,1,2}
1:{0,1,2,4}
2:{0,1,2,3,5}
3:{2,3,6}
4:{1,4,5,7}
5:{2,4,5,6,8}
6:{3,5,6,9}
7:{4,7,8}
8:{5,7,8,9}
9:{6,8,9}
Uji Kasus / Urutan
Ini adalah 100 istilah pertama
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 20, 21, 22, 23, 25, 32, 33, 36, 41, 44, 45, 47, 52, 54, 55, 56, 58, 63, 65, 66, 69, 74, 77, 78, 85, 87, 88, 89, 96, 98, 99, 100, 101, 102, 110, 111, 112, 114, 120, 121, 122, 123, 125, 141, 144, 145, 147, 200, 201, 202, 210, 211, 212, 214, 220, 221, 222, 223, 225, 232, 233, 236, 252, 254, 255, 256, 258, 320, 321, 322, 323, 325, 332, 333, 336, 363, 365, 366, 369, 410, 411, 412, 414, 441, 444, 445, 447]