Zähler-Algorithmus
-
Hallo.
Ich versuche mich gerade an einer Art "Kilometerzähler". Allerdings ist der Witz bei dem Ding, daß er nicht nur Zahlen zählen können soll, sondern beliebige Zeichen(-ketten), die in einem Array festgelegt werden können.
Ich habe einen Zähler hinbekommen, der das kann und auch insgesamt alle möglichen Zeichenkombinationen einmal durchzählt... Allerdings nicht ganz in der richtigen Reihenfolge.
Sagen wir mal, nach dem Wert "2" soll die nächste "Walze" eins hochgezählt werden. Dann müßte das Ganze so aussehen:
000
001
002
010
011
012usw.
Ich hab mit einem rekursiven Algorithmus bisher nur das hier hinbekommen:
001
011
111
211
021
121usw.
Ich hab nun schon ewig gebastelt und probiert, aber eine Erleuchtung hatte ich noch nicht...
Hat vielleicht jemand einen kleinen Tip für mich, der mir bei diesem Problem weiterhelfen könnte?
-
hab den kilometerzählertrick hier angewandt:
http://www.c-plusplus.net/forum/viewtopic.php?t=43408&start=15
-
schau die mal die Funktion itoa an (steht zwar nicht im ANSII standard, gibts aber trotzdem fast
überall)char *_itoa( int value, char *string, int radix );
Return Value Each of these functions returns a pointer to string. There is no error return.
Parameters
value Number to be convertedstring String result
radix Base of value; must be in the range 2 – 36
Remarks
The _itoa, _i64toa, and _ui64toa function convert the digits of the given value argument to a null-terminated character string and stores the result (up to 33 bytes) in string. If radix equals 10 and value is negative, the first character of the stored string is the minus sign ( – ). _itow, _i64tow, and _ui64tow are wide-character versions of _itoa, _i64toa, and _ui64toa respectively.
Nimm eine einfache Integer Zahl und konvertiere sie mit itoa zu einen String mit der passenden Radix
Wenn du jetzt noch spezielle Zeichn für die einzelnen Zahlen haben willst kannst du diese ja im String ersetzen
-
itoa gibt es nicht fast überall!