Wie schreibe ich ein Programm, welches vom User eine dreistellige Zahl einliest und die Zerlegung
der Zahl in Zehnerpotenzen aufzeigt?!
Hier ein Beispiel:
Zahl: 642
642 = 6 * 100 + 4 * 10 + 2 * 1
ICH BRAUCHE DRINGEND EURE HILFEEEE!
Bitte in Zukunft einen aussagekraeftigeren und nicht geschriehenen Betreff waehlen.
Und was hast du schon probiert? Bitte deinen Code zeigen, und das mit den Code-Tags. Wir sind hier eher nicht so Lieferando fuer Hausaufgaben.
Als kleine Hilfestellung: die Funktion divmod ist fuer eine solche Aufgabe sehr nuetzlich.
Und was hast du schon probiert? Bitte deinen Code zeigen, und das mit den Code-Tags. Wir sind hier eher nicht so Lieferando fuer Hausaufgaben.
Als kleine Hilfestellung: die Funktion divmod ist fuer eine solche Aufgabe sehr nuetzlich.
- __blackjack__
- User
- Beiträge: 13110
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Wobei man hier auch direkt auf der Zeichenkette operieren könnte.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Denk mal ganz weit zurück an deine Grundschulzeit, da wurde Division sicherlich als Division mit Rest eingeführt. divmod, was __deets__ schon vorher genannt hat, tut genau dies (wenn wir mal unterschiede zwischen remainder und modulo ignorieren).
- __blackjack__
- User
- Beiträge: 13110
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
In der Programmiersprache Vala könnte man das so umsetzen:
Testlauf:
Code: Alles auswählen
static void main () {
stdout.printf ("Bitte gib eine ganze Zahl ein: ");
var line = stdin.read_line ();
uint64 number;
if (uint64.try_parse (line, out number)) {
var remaining = number;
var factors = new List<uint> ();
while (remaining != 0) {
factors.prepend ((uint) (remaining % 10));
remaining /= 10;
}
if (factors.length () == 0) factors.append (0);
stdout.printf ("%s = ", number.to_string ());
var exponent = factors.length ();
foreach (var factor in factors) {
--exponent;
stdout.printf (
"%s*%s",
factor.to_string (),
Math.pow (10, exponent).to_string ()
);
if (exponent != 0) stdout.printf (" + ");
}
stdout.printf ("\n");
} else {
stdout.printf ("Das war leider keine Zahl!\n");
}
}
Code: Alles auswählen
Bitte gib eine ganze Zahl ein: 4711
4711 = 4*1000 + 7*100 + 1*10 + 1*1
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman