Kann jemand erklären was genau das Programm macht?
2 Antworten
Naja, sagen wir du tust 4567 rein, dann ist d
7*2^0 + 6*2^1 + 5*2^2 + 4*2^3 = 7 + 12 + 20 + 32 = 71
Also wie die Quersumme, nur dass jede Ziffer davor mit i^Stelle (von rechts aus) multipliziert wurde
In den ersten Blöcken werden die Variable d, i und remainder definiert und d und i wird der Wert 0 zugewiesen.
Als Nächstes wird eine Schleife gestartet, die solange läuft, wie n nicht 0 ist.
Der erste Block teilt die Zahl n durch 10 und gibt speichert den Rest Wert von der Division. In anderen Worten wird die letzte Ziffer in der Zahl abgespeichert.
Dann wird die Zahl n durch 10 geteilt, um die letzte Ziffer abzuschneiden.
Zusammengefasst ist es ein Iterieren über jede Ziffer der Zahl n.
Im nächsten wird die Ziffer mit 2 hoch der Iteration multipliziert und mit sich selber addiert. Das Ergebnis davon wird in d gespeichert. Die Schleife beginnt bei der rechten Ziffer und endet mit der linken Ziffer. Die Linke Ziffer hat also durch die höheren Iterationen die höchste Wertung.
Die Variable i zählt die Durchgänge (Iterationen) und wird jeweils um 1 erhöht.
Welche Funktion diese Berechnung am Ende erfüllen soll, kann ich dir nicht sagen.