Lösung zu Aufgabe von highscore.de

Irgendwas stimmt aber doch an deiner Erklärung nicht. Es macht doch keinen Sinn eine Quersumme zu berechnen, indem ich die Quersumme benutze... Das wäre doch doppelt gemoppelt...
Doch, es macht sehr viel Sinn. Diese Art von (rekursiver) Definition ist auch in der Mathematik durchaus üblich (Stichwort Folgen).

Um die Quersumme von 1234 zu berechnen:

Quersumme(1234) = Quersumme(1234 / 10) + 1234 % 10 = Quersumme(123) + 4
Quersumme(123) = Quersumme(12) + 3
Quersumme(12) = Quersumme(1) + 2
Quersumme(1) = Quersumme(0) + 1
Quersumme(0) = 0
außerdem les ich deinen Text so:
(Quersumme der Zahl 1234 geteilt durch 10 = 1) + (zahl % 10 = 4) = 5...
5 ist aber nicht die dezimale Quersumme von 1234 sondern 10.
Vielleicht hab ich dich auch gänzlich falsch verstanden!?
Allerdings.

Wie man es in C iterativ implementieren kann, hat sheel ja bereits verraten. Man kann noch etwas optimieren, indem man die Bedingung etwas anpasst:

1. Quersumme einer Zahl n ist gleich n, falls 0 <= n < 10
2. anderenfalls (n > 10), wie oben

Gruß
 
Zuletzt bearbeitet:
Zurück