Jede Zahl kann mit einer unendlich langen Restsequenz dargestellt werden. Zum Beispiel, wenn wir die Zahl 7, nehmen und ausführen 7mod2, dann 7mod3, dann 7mod4, und so weiter, wir bekommen 1,1,3,2,1,0,7,7,7,7,.....
Wir brauchen jedoch die kürzestmögliche verbleibende Teilsequenz, die noch verwendet werden kann, um sie von allen niedrigeren Zahlen zu unterscheiden. Das erneute Verwenden von 7 [1,1,3]ist die kürzeste Untersequenz, da nicht alle vorherigen Untersequenzen mit Folgendem beginnen [1,1,3]:
0: 0,0,0,0...
1: 1,1,1,1...
2: 0,2,2,2...
3: 1,0,3,3...
4: 0,1,0,4...
5: 1,2,1,0...
6: 0,0,2,1...
Beachten Sie, dass [1,1] die Darstellung von 7 nicht funktioniert, da sie auch zur Darstellung [1]von 1 verwendet werden kann. Sie sollten jedoch mit einer Eingabe von 1 ausgeben .
Input-Output
Ihre Eingabe ist eine nicht negative Ganzzahl. Sie müssen eine Sequenz oder Liste der Restsequenz mit minimaler Länge wie oben definiert ausgeben.
Testfälle:
0: 0
1: 1
2: 0,2
3: 1,0
4: 0,1
5: 1,2
6: 0,0,2
7: 1,1,3
8: 0,2,0
9: 1,0,1
10: 0,1,2
11: 1,2,3
12: 0,0,0,2
30: 0,0,2,0
42: 0,0,2,2
59: 1,2,3,4
60: 0,0,0,0,0,4
257: 1,2,1,2,5,5
566: 0,2,2,1,2,6,6
1000: 0,1,0,0,4,6,0,1
9998: 0,2,2,3,2,2,6,8,8,10
9999: 1,0,3,4,3,3,7,0,9,0
Hier sind die ersten 10.000 Sequenzen , falls Sie interessiert sind (die Zeilennummern sind um 1 versetzt).
Dies ist ein Code-Golf , also mach es so kurz wie möglich in deiner Lieblingssprache. Gefälschte Bonuspunkte für schnelle Antworten!