Défi du nombre de serpents
Je me demande combien de nombres de serpents il y a entre 1 et 50 000?
Snaking Numbers, dans ce jeu, sont des chiffres qui peuvent être saisis sur un pavé numérique traditionnel (format ci-dessous) en déplaçant une touche vers le haut, le bas, la gauche ou la droite.
7 8 9
4 5 6
1 2 3
0
Par exemple, si vous commencez par le chiffre 5, vous pouvez sélectionner 4, 6, 8 ou 2 comme prochain mouvement valide - cependant 7, 3, 9 et 1 sont hors limites car ils sont positionnés en diagonale par rapport à la clé actuelle . Donc, si vous en avez 5, puis 2, vos prochains choix de clés viables sont à nouveau 0, 1, 3 ou 5.
Dans cet exercice Code Golf, vous devez générer une liste de tous les nombres de serpents positifs entre 1 et 50k, ainsi qu'un décompte final de tous les nombres qui répondent au critère.
Règles
- Les nombres ne peuvent pas commencer par un zéro.
- Les nombres doivent être des entiers positifs entiers.
- Chaque numéro consécutif, lu de gauche à droite, doit "serpenter" autour du pavé numérique.
- Le serpent ne peut pas voyager en diagonale à travers les touches
- Le numéro 0 est accessible à partir des numéros 1 et 2
- Les numéros ne peuvent pas être jumelés (par exemple: 22)
Exemples de numéros de serpentage valides:
12369
45201
1254
10102
1
12
987
Exemples de numéros invalides
1238 - 8 is not connected
0001 - multiple leading 0s
0101 - leading 0
159 - snake cannot travel diagonally
4556 - duplicate 5
Selon les codes de golf normaux, l'objectif est le moins d'octets!
Selon mes calculs et mes règles, vous devriez avoir 670 nombres de serpents valides dans votre liste, plus 670 lui-même imprimé comme dernier numéro.
