Zerlegen Sie eine ganze Zahl n in eine Summe maximaler Dreieckszahlen (wobei T m die m- te Dreieckszahl oder die Summe der ganzen Zahlen von 1 bis m darstellt ) wie folgt:
während n> 0 ist ,
finde die größtmögliche Dreieckszahl T m, so dass T m ≤ n ist .
hänge m an die Dreieckszerlegungsdarstellung von n an .
subtrahiere T m von n .
Zum Beispiel würde eine Eingabe von 44 eine Ausgabe von 8311 ergeben , weil:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36 <44, aber 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45> 44.
- die erste Ziffer ist 8 ; Subtrahiere 36 von 44, um 8 übrig zu haben.
1 + 2 + 3 = 6 <8, aber 1 + 2 + 3 + 4 = 10> 8.
- die zweite Ziffer ist 3 ; subtrahiere 6 von 8, um 2 übrig zu haben.
1 <2, aber 1 + 2 = 3> 2.
- Die dritte und vierte Ziffer müssen 1 und 1 sein .
Verwenden Sie die Ziffern 1 bis 9, um die ersten 9 Dreieckszahlen darzustellen, und verwenden Sie dann die Buchstaben a bis z (in Groß- oder Kleinbuchstaben), um die 10. bis 35. Dreieckszahl darzustellen. Sie werden niemals eine Eingabe erhalten, die die Verwendung einer größeren "Ziffer" erfordert.
Die Grenzen für die Eingabe sind 1 ≤ n <666 und es wird immer eine ganze Zahl sein.
Alle möglichen Ein- und Ausgaben sowie einige ausgewählte Testfälle (als Eingabe, dann Ausgabe aufgelistet):
1 1
2 11
3 2
4 21
5 211
6 3
100 d32
230 k5211
435 t
665 z731
Eine Ausgabe von ∞ für eine Eingabe von -1/12 ist nicht erforderlich. :)