Große Zahlen sind immer faszinierend:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Function TForm1.erzeugeZahl(Stellen: Integer):String; Var n: Integer; Begin Result := ''; For n := 1 To Stellen Do Result := Result + IntToStr(Random(10)); End; |
Mit dieser Funktion werden beide addiert:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| Function Summe(Zahl1,Zahl2: String): String; Var n: Integer; Uebertrag: Byte; len: Integer; zw: Integer; Begin If Length(Zahl1) < Length(Zahl2) Then Begin Result := Zahl1; Zahl1 := Zahl2; Zahl2 := Result; End;
len := Length(Zahl1); For n := 1 To len-Length(Zahl2) Do Zahl2 := '0'+Zahl2; Result := ''; Uebertrag := 0; For n := 1 To len Do Begin zw := Uebertrag + StrToInt(Zahl1[len-n+1])+StrToInt(Zahl2[len-n+1]);
If zw > 9 Then Uebertrag := 1 Else Uebertrag := 0; Result := IntToStr(zw Mod 10) + Result; End;
If Uebertrag > 0 Then Result := IntToStr(Uebertrag)+Result; End; |
Hier werden öfter Funktionen optimiert, mit Assembler, besseren Algorithmen etc..
Kann man diese Funktion zur Addition von hohen Zahlen optimieren?