Zum Bilden der Quersumme werden in jeweils drei Schritten die einzelnen Ziffern von hinten an abgetrennt und summiert.
Danach wird die ganze Prozedur mit der Zahl 123 wiederholt. In der Variablen zahl der dann Wert 12. Nach den 4 Wiederholungen erhält man als Quersumme das Ergebnis 10.
Will man die Quersumme einer fünfstelligen Zahl bilden (z.B. 11111), muss die Anzahl der Wiederholungen auf 5 gesetzt werden. Das ist umständlich. Abhilfe schafft ein Befehl, der aus der zahl selber die Stellenzahl bestimmt.
Die Funktion (Logarithmus 10) findet eine Zahl x, so dass gilt: 10x=zahl. Für die Zahl 1234 liefert die Funktion 3,09. Rundet man das auf, erhält man 4 und hat die Anzahl der Stellen.
aber beim Testen fällt auf, dass für die Zahl 1000 als Quersumme eine 0 geliefert wird. Das ist eindeutig falsch!
Was ist die Ursache?
Der Logarithmus von 1000 liefert als Ergebnis eine 3. Die ist aber aufgerundet immer noch eine 3. Deshalb wird die Schleife nur drei Mal durchlaufen, also 0+0+0.
Vor der Berechnung der Quersumme muss man also prüfen, ob der Logarithmus der Zahl eine ganze Zahl ist. Falls das der Fall ist, wird die Stellenzahl um 1 erhöht.