Was Sie tun müssen, ist eine Funktion / ein Programm zu erstellen, die eine Dezimalzahl als Eingabe verwendet und das Ergebnis der wiederholten Verwendung des Kehrwerts des Bruchteils der Zahl ausgibt, bis die Zahl eine Ganzzahl wird.
Insbesondere ist der Prozess wie folgt:
Sei x die Eingabe
Wenn x eine Ganzzahl ist, geben Sie sie aus.
Andernfalls: . Gehen Sie zurück zu 2.
ist die Bruchkomponente von und entspricht . ist der Boden von x, der die größte ganze Zahl kleiner als .
Testfälle:
0 = 0
0.1 = 1/10 -> 10
0.2 = 1/5 -> 5
0.3 = 3/10 -> 10/3 -> 1/3 -> 3
0.4 = 2/5 -> 5/2 -> 1/2 -> 2
0.5 = 1/2 -> 2
0.6 = 3/5 -> 5/3 -> 2/3 -> 3/2 -> 1/2 -> 2
0.7 = 7/10 -> 10/7 -> 3/7 -> 7/3 -> 1/3 -> 3
0.8 = 4/5 -> 5/4 -> 1/4 -> 4
0.9 = 9/10 -> 10/9 -> 1/9 -> 9
1 = 1
3.14 = 157/50 -> 7/50 -> 50/7 -> 1/7 -> 7
6.28 = 157/25 -> 7/25 -> 25/7 -> 4/7 -> 7/4 -> 3/4 -> 4/3 -> 1/3 -> 3
Zusammenfassung für 0 bis 1 in Schritten von 0,1: 0, 10, 5, 3, 2, 2, 2, 3, 4, 9, 1
Dies ist Code-Golf , also gewinnen die wenigsten Bytes.
Erläuterungen:
- "Bonuspunkte" für keinen Rundungsfehler
- Sollte für jede nicht negative rationale Zahl funktionieren (ohne Rundungsfehler)
- Sie können, müssen aber nicht die durchgeführten Schritte ausgeben
- Sie können die Eingabe als Dezimalzahl, Bruch oder Zahlenpaar verwenden, das sich in einer Zeichenfolge befinden kann.
Entschuldigung für alle Probleme, dies ist meine erste Frage auf dieser Website.