Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.06.2007, 15:34

checksum algo

hi,

ich hab hier gerade einen sourcecode gesehen, der den checksumalgo berechnet und dabei ziemlich kurz und effizient ist.
der algorithmus soll einfach so oft die quersumme einer zahlr berechnen, bis diese nur noch einstellig ist.

C-/C++-Quelltext

1
2
3
4
5
6
7
int checksum(int n)
{
  while(n > 9)
    n = n%10 + n/10;

  return n;
}


wieso kommt da das gleiche raus? weil wenn man sich mal die zwischenergebnisse anschaut, geht dieser algo ja vollkommen anders vor...

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

16.06.2007, 16:00

Eher so, oder?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
int checksum(int n)
{
    int x = 0;

    while( ( n = ( n%10 + n/10 ) ) > 9)
    {
        x += n;
    }

    return x;
}
@D13_Dreinig

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

16.06.2007, 17:04

Der oben genannte Code funktioniert.
Die Frage war, warum er funktioniert.
Ich glaube, es hat etwas damit zu tun, dass

Quersumme(x) mod 9 = x mod 9

und

(Quersumme(x) + Quersumme(y)) mod 9 = (x + y) mod 9

Werbeanzeige