Zahlenfolge verkehrt ausgeben (C++)

Laserstrahl

Admiral Special
Mitglied seit
06.10.2003
Beiträge
1.610
Renomée
11
Ich als Programmieranfänger hätte keine Idee wie ich eine Zahlenfolge verkehrt ausgeben kann. z.B. Eingabe: 542 Ausgabe: 245
Der Tutor hat mir einen Tipp gegeben, das geht irgendwie mit modulo (%).
Ich weiss auch was mod ist, es ist einfach der Rest einer Division.
Bin schon Stundenlang daran gesessen und habe immer noch keine Idee. :(

Kann mir jemand noch einen Tipp oder Denkanstoss geben, wie ich das lösen kann?
Hat das auch irgendwas mit der höheren Mathematik zu tun?
 
hi Laserstrahl,

mit der fuktion strlen() kannst du die laenge des eingabestrings herausfinden.
mit dieser information koenntest du dann in einer zaehlschleife rueckwaerts, jedes zeichen, von hinten anfangend, ausgeben.

und was man da mit modulo machen koennt ...?
ka, was ihm da als loesung vorschwebt.

oben beschriebene vorgehensart, ist gaengig in der stringverarbeitung.
laenge ermitteln und mit index auf gewuenschte zeichen zugreifen.

gruss tes
 
Das Problem ist wir sind mit den Vorlesungseinheiten stoffmäßig noch nicht so weit.
Wir haben bis jetzt erst babybeispiele (z.B. Fläche eines Kreises) Variablen, Datentypen, Ausdrücke, Typconversionen (cast) durchgenommen und sonst nichts. keine Schleifen, keine Arrays...
 
Zahlenfolge oder mehrstellige Zahl? Ich nehme mal an letzteres ;)

Der Tipp mit modulo ist nicht schlecht: 542 mod 100 gibt 42, 542 mod 10 (oder auch 42 mod 10) gibt 2 (analog mit anderen Zehnerpotenzen). Die Ganzzahldivision ohne Rest (542/100=5) kannst du vielleicht auch noch gebrauchen.
Wenn man geschickt damit umgeht, kann man das gut zum Zahlenzerlegen benutzen (umgekehrt wieder zusammensetzen geht dann analog (bzw. invers) *buck*).
Ich hoffe der Tipp hilft dir weiter ;)
 
Original geschrieben von StrgAltEntf
Zahlenfolge oder mehrstellige Zahl? Ich nehme mal an letzteres ;)

Der Tipp mit modulo ist nicht schlecht: 542 mod 100 gibt 42, 542 mod 10 (oder auch 42 mod 10) gibt 2 (analog mit anderen Zehnerpotenzen). Die Ganzzahldivision ohne Rest (542/100=5) kannst du vielleicht auch noch gebrauchen.
Wenn man geschickt damit umgeht, kann man das gut zum Zahlenzerlegen benutzen (umgekehrt wieder zusammensetzen geht dann analog (bzw. invers) *buck*).
Ich hoffe der Tipp hilft dir weiter ;)

Du bist mein Held, vielen Dank!! :)

Also 542/100 wird bei int genau an der Kommastelle weggeschnitten, da hab ich also die 1. Stelle.
542 mod 100 => 42 mod 10 ergibt die 3. Stelle

542/10 => 54 mod 10: die 2. Stelle.
 
Genau, damit das mit beliebig großen Zahlen funktioniert, muss man das aber noch geschickt systematisieren und in eine Schleife oder Rekursion (in dem Fall vermutlich einfacher als ne Schleife - wenn man's kann) verpacken und auch passend wieder per Multiplikation und Addition zusammensetzen (falls das gewollt ist). Aber ihr hattet ja offenbar noch keine Schleifen... *noahnung*
 
Original geschrieben von StrgAltEntf
Genau, damit das mit beliebig großen Zahlen funktioniert, muss man das aber noch geschickt systematisieren und in eine Schleife oder Rekursion (in dem Fall vermutlich einfacher als ne Schleife - wenn man's kann) verpacken und auch passend wieder per Multiplikation und Addition zusammensetzen (falls das gewollt ist). Aber ihr hattet ja offenbar noch keine Schleifen... *noahnung*
Sorry hab die Angabe nicht genau angegeben.
Man braucht nur 3 stellige Zahlen einzugeben.
 
Zurück
Oben Unten