Aufgabe:
Reduzieren Sie eine Ganzzahl im Dezimalzahlensystem wie folgt auf eine einzelne Dezimalstelle:
- Konvertieren Sie die Zahl in eine Liste mit Dezimalstellen.
- Suchen Sie die größte Ziffer, D
- Entfernen Sie D aus der Liste. Wenn es mehr als ein Vorkommen von D gibt, wählen Sie das erste von links (an der höchstwertigen Position), alle anderen sollten intakt bleiben.
- Wandle die resultierende Liste in eine Dezimalzahl um und multipliziere sie mit D.
- Wenn die Zahl größer als 9 ist (mehr als eine Dezimalstelle hat), wiederholen Sie den gesamten Vorgang und tragen Sie das Ergebnis ein. Stoppen Sie, wenn Sie ein einstelliges Ergebnis erhalten.
- Zeigen Sie das Ergebnis an.
Beispiel:
26364 ->
1. 2 6 3 6 4
2. The largest digit is 6, so D=6
3. There are two occurrences or 6: at positions 1 and 3 (0-based). We remove the left one,
at position 1 and get the list 2 3 6 4
4. we convert the list 2 3 6 4 to 2364 and multiply it by D:
2364 * 6 = 14184
5. 14184 is greater than 9 so we repeat the procedure, feeding 14184 into it.
Wir wiederholen den Vorgang für 14184 und so weiter und gehen die folgenden Zwischenergebnisse durch und erreichen schließlich 8:
11312
3336
1998
1782
1376
952
468
368
288
224
88
64
24
8
Das Ergebnis für 26364 ist also 8.
Eingabe: Eine Ganzzahl / ein String, der eine Ganzzahl darstellt
Ausgabe: Eine einzelne Ziffer, das Ergebnis der Reduzierung, die auf die Zahl angewendet wird.
Testfälle:
9 -> 9
27 -> 4
757 -> 5
1234 -> 8
26364 -> 8
432969 -> 0
1234584 -> 8
91273716 -> 6
Dies ist Codegolf , daher gewinnen die kürzesten Antworten in Bytes in jeder Sprache.
10 -> 10
?