Para dígitos diferentes de zero em um teclado padrão
789
456
123
considere colocar um cavaleiro do xadrez em qualquer dígito e movê-lo com qualquer número de saltos normais em forma de L, traçando um número inteiro decimal positivo. Quais números inteiros positivos podem ser expressos dessa maneira?
Uma delas é 38
, já que o cavaleiro poderia começar 3
e se mover para a esquerda e para cima 8
. 381
e 383
também são possíveis.
3
em si é possível se nenhum salto for dado (o que é permitido). 5
também, mas nenhum outro dígito pode ser alcançado a partir do 5
, portanto, é o único número em que o dígito 5
aparece.
Escreva um programa ou função que receba um número inteiro decimal positivo (você pode tomá-lo como uma string, se desejar) e imprima ou retorne um valor verdadeiro se o número puder ser expresso por um cavaleiro em um teclado numérico da maneira descrita, mas, caso contrário, gera um valor falso .
O código mais curto em bytes vence. Desempate é resposta anterior
Exemplos
Verdade:
1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 18, 38, 61, 81, 294, 349, 381, 383, 729, 767, 38183, 38383, 18349276, 183492761, 618349276
Falsy:
10, 11, 50, 53, 55, 65, 95, 100, 180, 182, 184, 185, 186, 187, 188, 189, 209, 305, 2009, 5030, 3838384, 4838383, 183492760
78963214
, repetidas vezes sem conta. Conte as distâncias - sempre são quatro, de um jeito ou de outro. Eu deveria ter sido mais claro e dito explicitamente que você deve escrevê-lo em ordem circular.
123...9
. Desculpe