Hi Rokdd
Unser alltaegliches Dezimalsystem basiert auf zehn Ziffern (0…9)
Jede Zahl setzt sich daraus zusammen;
452 = z_3 z_2 z_1
wobei z_3=4, z_2=5 und z_1=2 ist.
„Zaehlen“ meint in jedem Schritt 1 dazu addieren; dabei kommt es zu Ueberlaufen, wenn man 9 + 1 addiert und man muss dann eine 1 nach links zur naechst hoeheren Dezimalstelle uebertragen. OK?
Es gibt Ausserirdische, die haben nur 4 Finger an jeder Hand. Die zaehlen im Oktalsystem und Zahlen enthalten deshalb nur die Ziffern 0 bis 7; Uebertraege erfolgen bei 7+1, weil 7+1 im Oktalsystem gleich 10 ist. Z.B.
257 + 1 = 260 (ein Uebertrag)
oder 277 + 1 = 300 (2 mal Uebertrag nach links wie bei 299+1 = 300
im Dezimalsysytem)
Du hast n Woerter und den leeren String. Dein Problem loest Du durch Aufzaehlen aller moeglichen Wortkombinationen. Die sind darstellbar durch alle Zahlen im n+1 System. Wenn Du das Aufzaehlen nicht im Dezimalsystem machst, sondern im n+1 - System, dann geben Dir die Ziffern in den Zahlen genau die Nummern der Woerter in Deiner Liste an, die Du verketten musst. Deshalb bastelst Du Dir einen Zaehler im Programm, der modulo n+1 zaehlt und haengst dann, die von der Zahl im n+1 System angegebenen Strings einfach hintereinander.
Wie schon in einer frueheren Notiz ist es vermutlich leichter, statt eines Arrays fuer die Positionen der Ziffern in dem Zahler, einfach einen Integer zu verwenden, den hoch zu zaehlen, und mittels Division und Modulo-operation die (n+1) - Darstellung auszurechnen. Etwa so:
long counter=0; // das ist der Zaehler
long cdiv, cmod; // zur Hilfe
string ouput;
while( counter [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]