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: