ICH BRAUCHE DRINGEND EURE HILFEEEE!

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mxvmp
User
Beiträge: 2
Registriert: Mittwoch 30. Oktober 2019, 18:53

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
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
__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
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Und dann ist es ein Einzeiler.
mxvmp
User
Beiträge: 2
Registriert: Mittwoch 30. Oktober 2019, 18:53

Hab alles versucht, ich check es nicht, verdammt. :\
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was an meinem ersten Posting hast du nicht verstanden? Wo ist dein Code, in dem du "alles versucht" hast?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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).
Benutzeravatar
__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:

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");
    }
}
Testlauf:

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
Antworten