Kusnezows Sequenz
(I made the name up, don't bother with Wikipedia or Google)
Gegeben eine beliebige Zahl n > 0, lassen Sie rdie Rückseite der Zahl darstellen n. Iterieren Sie, bis das Endergebnis Null ist, und geben Sie das Ergebnis jeder Iteration mithilfe einer Rekursion oder einer Methode Ihrer Wahl in die Funktion zurück, indem Sie die folgende Operation ausführen:
- Wenn
r > nfür diese Iteration das Ergebnis istr % n. - Wenn
n > rfür diese Iteration das Ergebnis istn % r. - Wenn
n % r = 0oderr % n = 0, brechen Sie die Iteration ab.
Nehmen Sie das Zwischenergebnis jeder Ausführung und speichern Sie sie in einem Array für die endgültige Antwort. Die anfängliche Nummer nist weder Teil der Sequenz noch 0; Die Beispiele sollten alles ein wenig offensichtlicher machen.
Gehen wir ein Beispiel durch, wo n=32452345.
54325423 % 32452345 = 21873078 # r > n, uses r % n
87037812 % 21873078 = 21418578 # r > n, uses r % n
87581412 % 21418578 = 1907100 # r > n, uses r % n
1907100 % 17091 = 9999 # n > r, uses n % r
9999 % 9999 = 0 # r % n = n % r = 0, terminated
Result: [21873078, 21418578, 1907100, 9999]
Ein weiteres Beispiel n=12345678:
87654321 % 12345678 = 1234575 # r > n, uses r % n
5754321 % 1234575 = 816021 # r > n, uses r % n
816021 % 120618 = 92313 # n > r, uses n % r
92313 % 31329 = 29655 # n > r, uses n % r
55692 % 29655 = 26037 # r > n, uses r % n
73062 % 26037 = 20988 # r > n, uses r % n
88902 % 20988 = 4950 # r > n, uses r % n
4950 % 594 = 198 # n > r, uses n % r
891 % 198 = 99 # r > n, uses r % n
99 % 99 = 0 # r % n = n % r = 0, terminated
Result: [1234575, 816021, 92313, 29655, 26037, 20988, 4950, 198, 99]
Ein letztes Beispiel n=11000:
11000 % 11 = 0 # n % r = 0, terminated
Result: []
Dies ist Code-Golf mit der niedrigsten Anzahl an Bytes.