Snaking Number Challenge
Gostaria de saber quantos números serpenteantes existem entre 1 e 50.000?
Números serpentes, neste jogo, são números que podem ser digitados em um teclado numérico tradicional (formato abaixo) movendo uma tecla para cima, para baixo, para a esquerda ou para a direita.
7 8 9
4 5 6
1 2 3
0
Por exemplo, se você começar com o número 5, poderá selecionar 4, 6, 8 ou 2 como sua próxima jogada válida - no entanto, 7, 3, 9 e 1 estão fora dos limites, pois estão posicionados na diagonal em relação à tecla atual . Portanto, se você tiver 5 e 2, suas próximas opções de teclas viáveis serão 0, 1, 3 ou 5 novamente.
Neste exercício do Code Golf, você deve produzir uma lista de todos os números positivos de serpentina entre 1 e 50k, juntamente com uma contagem final de todos os números que atendem ao critério.
Regras
- Os números não podem começar com um zero.
- Os números devem ser inteiros positivos inteiros.
- Cada número consecutivo, lido da esquerda para a direita, deve "serpentear" ao redor do teclado numérico.
- A cobra não pode viajar na diagonal pelas teclas
- O número 0 pode ser acessado pelos números 1 e 2
- Os números não podem ser emparelhados (por exemplo: 22)
Exemplos de números de serpentes válidos:
12369
45201
1254
10102
1
12
987
Exemplos de números inválidos
1238 - 8 is not connected
0001 - multiple leading 0s
0101 - leading 0
159 - snake cannot travel diagonally
4556 - duplicate 5
De acordo com o Code Golfs normal, o objetivo é o menor número de bytes!
De acordo com as minhas regras e matemática, você deve ter 670 números válidos na lista e mais 670 em si como o último número.
