Thema: Delphi sehr große Zahlen MOD

Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.476 Beiträge
 
Delphi 12 Athens
 
#3

AW: sehr große Zahlen MOD

  Alt 27. Jun 2013, 18:51
Ich vermute, die Zahl liegt als String vor. Dann kannst du die sogar Zeichenweise abarbeiten. Es gilt nämlich
(a + b) mod c = ((a mod c) + (b mod c)) mod c

Solange der Divisor noch als Integer darstellbar ist und damit das Ergebnis zwangsläufig auch, tut es auch somit folgende Funktion:
Delphi-Quellcode:
function LongMod(const Zahl: string; Divisor: Integer): Integer;
var
  Ch: Char;
begin
  Result := 0;
  for Ch in Zahl do begin
    Result := (10*Result + Ord(Ch) - Ord('0')) mod Divisor;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat