Delphi-Quellcode:
{*
* Berechne die Quersumme aus einer Zahl x
* z.B.: Quersumme von 1234 ist 10
*}
function QuerSumme(x:Longint):integer;
begin
Result := 0;
while x <> 0 do
begin
Result := Result + (x mod 10);
x := x div 10;
end;
end;
{*
* Berechne so oft die Quersumme aus einer Zahl x
* bis das Ergebnis aus nur einer Ziffer besteht
*}
function QuerQuerSumme(x:Longint):integer;
begin
result := QuerSumme(x);
while Abs(Result) > 9 do
result := QuerSumme(Result);
end;
Von
alzaimar kommt noch folgende Version für die
Quer-Quersumme (funktioniert nur für positive Werte):
Delphi-Quellcode:
function QuerQuersumme (x : Integer) : Integer;
begin
Result := 1+ ((x-1) mod 9);
end;
Von
Nikolas kommt dazu noch folgende Erweiterung, damit die Funktion auch für negative Werte funktioniert:
Delphi-Quellcode:
function QuerQuersumme(x: integer): integer;
begin
Result := Sign(x) * (1 + ((Abs(x)-1) mod 9));
end;
[edit=CalganX]Weitere Quellcodes angefügt. Mfg, CalganX[/edit]