Hallo Dax,
Zitat von
Dax:
Warum nicht einfach so?
Delphi-Quellcode:
function MyPow(Base, Exponent: Integer): Int64;
begin
Result := Round(Exp(Exponent * Ln(Base)));
end;
das ist generell in Ordnung. Der Vorteil der Integer-Arithmetik fällt nicht so groß aus, wie ich dachte und für große Exponenten muss ich sogar die Rekursion ausbauen, damit ich mithalten kann. Ich wusste gar nicht, dass Exp() und Ln() zur Grundausrüstung gehören.
Für alle die es interessiert:
100.000.000 Zyklen 5 hoch 10: mypow 21s rekursiv 20s nonrek 18s
negative Basen gehen mit MyPow nicht.
Grüße vom marabu