Inspiré par la génération de numéros adaptés au clavier .
Contexte
De nombreux pavés numériques ont la disposition suivante:
789
456
123
0
Nous définissons le voisinage d'un nombre comme l'ensemble de cellules orthogonalement adjacentes à celui-ci sur le pavé numérique illustré, y compris lui-même. Par exemple, le quartier de 2 est {1,5,3,0,2}
et le quartier de 0 est {1,2,0}
. Il y a une liste des environs de chaque numéro ci-dessous, au-dessus des cas de test.
Nous définissons un nombre convivial du pavé numérique comme un entier positif où, lorsqu'il est écrit en décimal sans zéros non significatifs, chaque chiffre, à l'exception du premier, se trouve au voisinage du chiffre précédent.
Par exemple,
- 7856 est un numéro convivial car 8 se trouve dans le quartier de 7, 5 dans le voisinage de 8 et 6 dans le quartier de 5.
- 1201 est un nombre convivial du pavé numérique, car 2 se trouve dans le voisinage de 1, 0 est dans le voisinage de 2 et 1 est dans le voisinage de 0.
- 82 n'est pas un numéro convivial car 2 n'est pas dans le voisinage de 8.
- 802 n'est pas un numéro convivial car 0 n'est pas dans le voisinage de 8 (les quartiers ne s'enroulent pas).
Séquence OEIS associée . Notez que cette séquence associée est distincte car elle compte 0comme adjacente à la 7place de 1et 2.
Défi
Étant donné un entier positif n
, retournez le n
-ème ou les premiers n
nombres compatibles avec le pavé numérique, où le premier est 1. Vous pouvez utiliser une indexation basée sur 0, où le 0-ème numéro compatible avec le pavé numérique serait 1.
Quartiers
Le quartier de chaque chiffre est répertorié ici:
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}
Cas de test / séquence
Ce sont les 100 premiers termes
[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]