Twój program musi przyjąć dane wejściowe ( n
do celów opisu) i wypisać wszystkie permutacje liczby, która jest n
długa, bez powtarzających się cyfr, gdzie każda z cyfr poprzedzających indeks wraz z indeksem jest podzielna przez miejsce w liczbie, w której się znajduje .
Możesz przeczytać o magicznych liczbach tutaj .
Zasady:
1 <= n <= 10
- Żadne cyfry nie mogą się powtarzać
- Wiodące 0 musi być obecne (jeśli dotyczy)
- Od 1 do 3
x
cyfry liczby (zaczynając od pierwszego znaku jako 1) muszą być podzielne przezx
, tj. W30685
,3
jest podzielne przez 1,30
jest podzielne przez 2,306
jest podzielne przez 3,3068
jest podzielne przez 4 i30685
jest podzielne przez 5 . - Program musi przyjmować liczbę całkowitą jako dane wejściowe (poprzez wiersz poleceń, jako argument funkcji itp.) I wypisać wszystkie kombinacje spełniające reguły.
- Dane wyjściowe muszą być oddzielone co najmniej 1 spacją
- Permutacje mogą zaczynać się od zera (więc nie są to technicznie magiczne liczby).
- Kolejność produkcji nie ma znaczenia
- Zdajesz nie trzeba obsłużyć nieoczekiwane wejście
- Wygrywa najmniej znaków w bajtach
Przykłady
Biorąc pod uwagę 1:
0
1
2
3
4
5
6
7
8
9
Biorąc pod uwagę 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
Biorąc pod uwagę 10:
3816547290
Podziękowania dla Pizza Hut i Johna H. Conwaya za oryginalną układankę (Opcja A). Dzięki @Mego i @ sp3000 za ich linki .