Ihr Programm muss eine Eingabe ( n
zum Zwecke der Beschreibung) annehmen und alle Permutationen einer Zahl ausgeben, die n
Ziffern ohne wiederholte Ziffern lang sind, wobei jede der Ziffern vor und einschließlich ihres Index durch die Stelle in der Zahl teilbar ist, auf die sie fällt .
Über magische Zahlen können Sie hier lesen .
Regeln:
1 <= n <= 10
- Es dürfen keine Ziffern wiederholt werden
- Die führende 0 muss vorhanden sein (falls zutreffend)
- Die 1. bis
x
10. Ziffer der Zahl (beginnend mit dem ersten Zeichen als 1) muss teilbar sein durchx
, dh in30685
,3
ist teilbar durch 1,30
ist teilbar durch 2,306
ist teilbar durch 3,3068
ist teilbar durch 4 und30685
ist teilbar durch 5 . - Das Programm muss eine Ganzzahl als Eingabe annehmen (über die Befehlszeile, als Funktionsargument usw.) und alle Permutationen ausgeben, die den Regeln entsprechen.
- Die Ausgabe muss durch mindestens ein Leerzeichen getrennt werden
- Permutationen können mit Null beginnen (also technisch gesehen keine magischen Zahlen).
- Die Reihenfolge der Ausgabe spielt keine Rolle
- Sie müssen nicht mit unerwarteten Eingaben umgehen
- Die wenigsten Zeichen in Bytes gewinnen
Beispiele
Gegeben 1:
0
1
2
3
4
5
6
7
8
9
Gegeben 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
Gegeben 10:
3816547290
Dank an Pizza Hut & John H. Conway für das ursprüngliche Rätsel (Option A). Vielen Dank an @Mego und @ sp3000 für die Links .
code-golf
permutations
DavisDude
quelle
quelle
Antworten:
Jelly ,
201716 BytesDies ist sehr langsam und speicherintensiv ... Probieren Sie es online!
Wie es funktioniert
quelle
JavaScript (Firefox 30-57), 77 Byte
Bearbeiten: 1 Byte dank @ edc65 gespeichert.
quelle
...of"012...
Pyth, 19 Bytes
Demonstration
Eine Brute-Force-Lösung. Erklärung folgt. Inspiration dank FryAmTheEggman
22 Bytes
Demonstration
Zahlen werden als Zeichenfolgen erstellt und gespeichert und nur in Ints konvertiert, um die Teilbarkeit zu überprüfen.
Erläuterung:
quelle
._
endete mit einem weiteren mit und ein paar anderen Sachen, aber es ist langsamer für große Eingaben:jjLkf!s.e%ib10hk._T.PUT
MATL , 30 Bytes
Probieren Sie es online!
Es ist sehr langsam. Im
input 3
Online-Compiler dauert es einige Sekunden. Fügen Sie am Ende des Codes ein ein, umD
zu sehen, wie die Zahlen einzeln angezeigt werden .Erläuterung
quelle
3
ich mir das ansehe, sehe ich, dass Sie ein paar Anzeichen haben (z. B. 026). Auch eine Erklärung wäre dankbarRuby, 87 Bytes
Grundlegende rekursive Lösung.
Wenn Sie anstelle des Druckens eine Liste der Permutationen zurückgeben dürfen, sind dies 85 Byte:
quelle
Python, 132 Bytes
Wir haben 26 Bytes
itertools
verloren, weil ich dank Sp3000 festgestellt habe, dass ich es nicht verwenden sollte.Es wurden 2 Bytes
filter
gelöscht, indem ein Listenverständnis verwendet wurde, und nicht . Nochmals vielen Dank an Sp3000 für den Tipp.Probieren Sie es online aus: Python 2 , Python 3
quelle