Das ist reine Übungssache :) Allerdings war es zufällig auch mein erstes C-Programm mit Rekursion.Sag mal wie hast du das so schnell hinbekommen?
Und dann muss mannur noch alle Zahlen mit doppelten Ziffern entfernen......Danach muss man natürlich jede Hexzahl in eine Dezimale wandeln.
Die Ausgabe des Zählerstandes erfolgt am Ende der For-Schleife für die erste Ziffer:Allerdings hab ich mal noch eine Frage: Warum kommst du nur auf 362880 Möglichkeiten ? Es müssten doch 3628800 sein…
bzw. was meinst du mit "Da der Zähler voreilt…"?
Zu diesem Zeitpunkt sind alle Kombinationen die mit "0" anfangen generiert. Allerdings wurde die Nr-Variable schon für die nächste Runde erhöht, deshalb eilt der Zähler an dieser Stelle immer um 1 vor.Code:Print "Zwischenstand: " ; Nr ; " Kombinationen erzeugt" Next N(1) Decr Nr
Ich denke, auch das Symmetrieproblem ist gelöst:
Damit kann man die äußerste Schleife im Hauptprogramm von 0 bis 4 laufen lassen und durch die Spiegelung der Werte wird der Bereich 5 bis 9 generiert.Code:if(0) // 1 bedeutet: Ausgabe der Ziffernkombinationen { PrintInt(nr); SerWrite(": ", 2); for(y=0; y<ziffern; y++) { while(!(UCSRA & 0x20)); UDR = muster[y]+'0'; } SerWrite(" ", 2); for(y=0; y<ziffern; y++) { while(!(UCSRA & 0x20)); UDR = 9-muster[y]+'0'; } SerWrite("\r\n", 2); }
Wozu kann man solche Kombinationen eigentlich nutzen?









Lesezeichen