Der verrückte Mathematiker besitzt eine breite Sammlung von Zahlen, und deshalb ist der Platz, den er übrig hat, ziemlich begrenzt. Um einiges zu retten, muss er seine ganzen Zahlen falten, aber leider ist er wirklich faul. Wenn Sie ihm helfen möchten, müssen Sie eine Funktion / ein Programm erstellen, die / das eine bestimmte positive ganze Zahl für unseren Zahlenwahnsinnigen faltet.
Wie falte ich eine ganze Zahl?
Wenn es gleichmäßig durch die Summe seiner Ziffern teilbar ist, dividieren Sie es durch die Summe seiner Ziffern. Wenn dies nicht der Fall ist, teilen Sie den Rest durch die Summe der Ziffern. Wiederholen Sie den Vorgang, bis das Ergebnis erreicht ist 1
. Die gefaltete Ganzzahl ist die Anzahl der Operationen, die Sie ausführen mussten. Nehmen wir ein Beispiel (sagen wir 1782
):
Holen Sie die Summe ihrer Ziffern:
1 + 7 + 8 + 2 = 18
.1782
ist gleichmäßig teilbar durch18
, die nächste Zahl ist also1782 / 18 = 99
.99
nicht teilbar ist durch9 + 9 = 18
, daher nehmen wir den Rest:99 % 18 = 9
.9
ist offensichtlich teilbar durch9
, also teilen wir es und erhalten1
.
Das Ergebnis ist 3
, weil 3 Operationen erforderlich waren, um zu erreichen 1
.
Regeln und Spezifikationen
Bei einigen Ganzzahlen ist die Summe der Ziffern möglicherweise gleich
1
, z. B.10
oder100
. Ihr Programm muss solche Fälle nicht behandeln. Das heißt, Sie werden garantiert, dass die als Eingabe angegebene Ganzzahl nicht die gleiche Ziffernsumme1
hat und keine Operation mit der angegebenen Ganzzahl zu einer Zahl führt, deren Ziffernsumme1
(mit Ausnahme von sich1
selbst, der " Ziel"). Zum Beispiel erhalten Sie nie10
oder20
als Eingabe.Die Eingabe ist eine positive Ganzzahl höher als
1
.Es gelten Standardlücken .
Sie können die Eingabe und Ausgabe mit jedem Standardmittelwert vornehmen .
Testfälle
Eingabe -> Ausgabe 2 -> 1 5 -> 1 9 -> 1 18 -> 2 72 -> 2 152790 -> 2 152 -> 3 666 -> 3 777 -> 3 2010 -> 3 898786854 -> 4
Hier ist ein Programm , mit dem Sie den Prozess visualisieren und weitere Testfälle ausprobieren können.
Das ist Code-Golf , also gewinnt der kürzeste Code in jeder Sprache (in Bytes)!
8987868546
eine gültige Eingabe ist, wird es Ihr Test-Tool und auch viele (wenn nicht alle) der Antworten brechen ...
898786854
, nicht 8987868546
(Sie haben 6
am Ende eine hinzugefügt )
8987868546
ist nicht 1 ( Regel 1 erfüllt ) und 8987868546
ist eine positive ganze Zahl höher als 1 ( Regel 2 erfüllt ).