Wie kann ich eine Zahl potenzieren?
In Delphi gibt es keine Standardfunktion für eine Rechnung der Art 'x hoch y'. Hier sind zwei Versionen:
1. die einfache Methode:
Die folgende Funktion gilt nur für y>0, für sehr große Werte sollte man auf den Datentyp double ausweichen.
function Power(x,y : integer) : integer;
begin
result := 1;
for i := 1 to y do begin
Result := Result*x;
end;
end;
2. die elegante Methode:
Diese Funktion gilt nur für x>0.
function Power(x,y : double) : double; begin result := exp(y * ln(x)); end;
3. und hier noch die Methode von Olivier Braun (auch nur für x>=0):
function schnell_pot(b,n:longint):longint;
function quadrat(x:longint):longint;
begin
quadrat := x*x;
end;
begin
if n=0 then
schnell_pot:=1
else
if (n>1) then
if not(odd(n)) then
result := quadrat(result(b,n div 2))
else
result := b*result(b,(n-1));
end;
| Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
| nicht getestet | Version nicht betroffen | getestet |
siehe auch: