Extension du domaine de la fonction

Question

Sur la base du code plus haut, étendez la fonction power pour calculer la puissance n du nombre p avec \(n\in \mathbb{N}\)et \(x\in \mathbb{R}\). Après avoir adapté le

Indice

Nous avons \(n\in \mathbb{N}\), n peut donc être négative. Dans ce cas, la boucle n'est plus valable :

  • Dans la première version, la variable i de valeur initiale 0 est incrémentée jusqu'à la valeur n, donc supposée >0,

  • Dans la seconde version, la valeur de n est décrémentée jusqu'à obtenir la valeur 0, ce qui suppose également que n est >0.

Pour rétablir la validité de la boucle, nous vérifions au préalable le paramètre n et ajustons les valeurs des paramètres si nécessaire.

Solution

1
double power (double x, int n){
2
  double res=1 ;
3
  if(n<0){
4
    x=1/x ;
5
    n=-n ;
6
  }
7
  for (; n>0 ; --n) res *=x ;
8
  return res ;
9
}