Seu programa deve receber uma entrada ( n
para fins de descrição) e gerar todas as permutações de um número de n
dígitos longos sem dígitos repetidos, em que cada um dos dígitos anteriores e incluindo seu índice é divisível pelo local no número em que ele cai .
Você pode ler sobre números mágicos aqui .
Regras:
1 <= n <= 10
- Nenhum dígito pode ser repetido
- O 0 inicial deve estar presente (se aplicável)
- O primeiro ao
x
décimo dígito do número (começando com o primeiro caractere como 1) deve ser divisível porx
, ou seja, em30685
,3
é divisível por 1,30
é divisível por 2,306
é divisível por 2, é divisível por 3,3068
é divisível por 4 e30685
é divisível por 5 . - O programa deve usar um número inteiro como entrada (por meio da linha de comando, como argumento de função etc.) e imprimir todas as permutações que satisfazem as regras.
- A saída deve ser separada por 1 ou mais caracteres de espaço em branco
- As permutações podem começar e com zero (portanto, não são números tecnicamente mágicos).
- A ordem de saída não importa
- Você não precisa lidar com entrada inesperada
- Vitórias menos caracteres em bytes
Exemplos
Dado 1:
0
1
2
3
4
5
6
7
8
9
Dado 2:
02
04
06
08
10
12
14
16
18
20
24
26
28
30
32
34
36
38
40
42
46
48
50
52
54
56
58
60
62
64
68
70
72
74
76
78
80
82
84
86
90
92
94
96
98
Dado 10:
3816547290
Agradecemos a Pizza Hut e John H. Conway pelo quebra-cabeça original (opção A). Obrigado a @Mego e @ sp3000 pelos links .