Snaking Number Challenge
Zastanawiam się, ile liczb snakingowych jest między 1 a 50 000?
Snaking Numbers w tej grze to liczby, które można wpisać na tradycyjnej klawiaturze numerycznej (format poniżej), przesuwając jeden klawisz w górę, w dół, w lewo lub w prawo.
7 8 9
4 5 6
1 2 3
0
Na przykład, jeśli zaczniesz od cyfry 5, możesz wybrać 4, 6, 8 lub 2 jako następny ważny ruch - jednak 7, 3, 9 i 1 są niedostępne, ponieważ są ustawione po przekątnej do bieżącego klucza . Tak więc, jeśli masz 5, a następnie 2, następnym możliwym do wyboru kluczem jest ponownie 0, 1, 3 lub 5.
W tym ćwiczeniu Code Golf masz wypisać listę wszystkich dodatnich liczb snakingowych od 1 do 50k, wraz z ostateczną liczbą wszystkich liczb, które spełniają kryterium.
Zasady
- Liczby nie mogą zaczynać się od zera.
- Liczby muszą być całymi dodatnimi liczbami całkowitymi.
- Każdy kolejny numer, odczytywany od lewej do prawej, musi „wąż” wokół klawiatury numerycznej.
- Wąż nie może podróżować po przekątnej przez klawisze
- Dostęp do cyfry 0 można uzyskać zarówno z liczb 1, jak i 2
- Liczb nie można sparować (np .: 22)
Przykłady prawidłowych liczb snakingowych:
12369
45201
1254
10102
1
12
987
Przykłady nieprawidłowych liczb
1238 - 8 is not connected
0001 - multiple leading 0s
0101 - leading 0
159 - snake cannot travel diagonally
4556 - duplicate 5
Jak w normalnych Code Golfs, celem jest jak najmniej bajtów!
Zgodnie z moją matematyką i zasadami na twojej liście powinieneś mieć 670 prawidłowych liczb węży oraz 670 wydrukowanych jako ostatni numer.
