In dieser Herausforderung vor 2 Jahren haben wir die Periode eines Einheitsbruchteils ( 1/n where n is a natural number
) gefunden.
Ihre Aufgabe ist es nun, ein Programm / eine Funktion zu schreiben, um die Wiederholung eines Einheitenbruchteils zu finden .
Die Wiederholung ist der Teil der Dezimalerweiterung, der sich unendlich wiederholt, wie:
- Die Dezimaldarstellung
1/6
heißt0.16666...
, dann wird die Periode ist6
. - Die dezimale Darstellung von
1/11
ist0.090909...
, dann ist die Wiederholung09
. - Die dezimale Darstellung von
1/28
ist0.0357142857142857142857...
, dann ist die Wiederholung571428
.
Technische Daten
- Eingabe in einem angemessenen Format.
- Geben Sie die Wiederholung als Dezimalzahl, Zeichenfolge oder Liste aus .
- Für
1/7
(0.142857142857...
) müssen Sie142857
anstelle von ausgeben428571
. - Für
1/13
(0.076923076923076923...
) müssen Sie076923
anstelle von ausgeben76923
. - Bitte keine rohe Gewalt.
Testfälle
Input Output
1 0
2 0
3 3
7 142857
13 076923
17 0588235294117647
28 571428
70 142857
98 102040816326530612244897959183673469387755
9899 000101020305081321345590463683200323264976260228305889483786241034447924032730578846348115971310233356904737852308313971108192746742095161127386604707546216789574704515607637135064147893726639054449944438832205273259925244974239822204263056874431760783917567431053641781998181634508536215779371653702394181230427315890493989291847661379937367410849580765733912516415799575714718658450348520052530558642287099707041115264168097787655318719062531568845337912920497019901
Wertung
Das ist Code-Golf . Kürzeste Lösung in Bytes gewinnen.
Es wird keine Antwort akzeptiert, da das Ziel nicht darin besteht, die Sprache zu finden, die die kürzeste Lösung liefert, sondern die kürzeste Lösung in jeder Sprache.
Bestenliste
code-golf
math
arithmetic
number-theory
Undichte Nonne
quelle
quelle
1/13
es0.076923076923...
nicht ist0.769230769230...
Antworten:
Java, 150 Bytes:
Leerzeichen hinzugefügt:
Ungolfed, volles Programm:
quelle
for(;;)
wäre weniger bytes alswhile(2<3)
obwohl dabei auch eine endlosschleife! (und weniger Bytes alswhile(1)
auch @Maltysen)a
undr
in die for-Schleifen. Spart Bytes!CJam, 26
Probieren Sie es online aus
Erläuterung:
Das Programm erstellt eine Reihe von Dividenden, die in die Berechnung der Dezimalexpansion einbezogen sind, bis es eine Dividende findet, die es zuvor gesehen hat. Dann werden alle Dividenden, die mit dieser beginnen, durch n dividiert, um die Ziffern der Wiederholung zu erhalten.
quelle
Python 3.5,
79747370 Bytes3 Bytes gespart, indem Dividenden nachverfolgt wurden , eine Idee, die ich aus @ aditsus CJam-Antwort übernommen habe .
Testen Sie es auf repl.it .
quelle
Gelee ,
1210 Bytes2 Bytes gespart, indem Dividenden nachverfolgt wurden , eine Idee, die ich aus @ aditsus CJam-Antwort übernommen habe .
Probieren Sie es online!
Wie es funktioniert
quelle
GameMaker-Sprache, 152 Byte
Basierend auf Kennys Antwort
quelle
Java, 122
Ähnlich wie bei meiner CJam-Lösung.
quelle
Perl 6 , 37 Bytes
Wenn es Ihnen egal ist, dass es nur mit Nennern funktioniert, die in eine 64-Bit-Ganzzahl passen, können Sie den Methodenaufruf für entfernen
.FatRat
.Erläuterung:
Prüfung:
quelle
Pyth, 63 Bytes
Probieren Sie es online!
Direkte Übersetzung der Antwort in Java .
quelle
PHP, 169 Bytes
quelle