Alternierende Quersumme



  • Hallo,
    lern seit nem halben Jahr c++ @ school und seit 3 wochen quält mich mein lehrer mit folgendem problem:

    Wie kann ich eine alternierende Quersumme bilden?

    Bsp: zahl = 123

    alternierende quersumme bildet sich so: 3-2+1 = 2

    Hat jemand n vorschlag?

    Bitte möglichst einfach :p



  • Hm... also, das ist doch eigentlich relativ einfach, oder?

    ich würde die Zahl erstmal in nen std::string packen.

    Dann von hinten anfangen, jede Zahl durchzugehen, und zur summe zu addieren, wenn davor abgezogen wurde, oder zu subtrahieren, wenn davor addiert wurde.

    Zum Schluss hast du dann die Summe



  • soweit die theorie ^^

    aber wie verwirklicht man das in c++?

    immerhin kann es einmal sein dass ich die zahl 12345 (5 ziffern) hab und einmal dass ich die zahl 123 (3 ziffern) hab.

    es hat was mit dem modulo befehl zu tun.

    mit zahl % 10 komm ich an die letzte ziffer der zahl.
    aber mein problem is einfach dass ich keine geeignete schleife find.



  • Das mit dem modulo 10 ist schonmal ein guter Anfang 😉 danach einfach durch 10 teilen (zahl /= 10). Das solange, bis es nicht mehr weiter geht (zahl == 0).



  • das kann man ganz einfach rekursiv machen:

    altqs(zahl)
    {
    if zahl == 0 return 0
    return (zahl mod 10) - altqs(zahl/10)
    }



  • jo danke,
    hab es inzwischen hinbekommen... thx an alle


Anmelden zum Antworten