Lektionsindhold -- Tastaturgenvej: 'u'  Forrige side: Potensopløftning (1) -- Tastaturgenvej: 'p'  Næste side: Potensopløftning (3) -- Tastaturgenvej: 'n'  Forelæsningsnoter - alle slides sammen  Lærebog -- Tastaturgenvej: 'v'  Alfabetisk indeks  Hjælp om disse noter  Kursets hjemmeside    Rekursion - slide 14 : 27

Potensopløftning (2)
På denne side viser vi en mere effektiv rekursiv potensopløftningsfunktion
double power(double number, int pow){
  double result; 

  printf("power(%lf,%i)\n", number, pow);
  if (pow == 0)
    result = 1.0;
  else if (pow > 0 && even(pow))
    result = sqr(power(number,pow/2));
  else if (pow > 0 && odd(pow))
    result = number * power(number, pow - 1);
  else 
    result = 1.0 / power(number, -pow);

  return result;
}