2013-03-13 4 views
0

La fonction pow peut-elle être utilisée dans une fonction récursive? Par exemple:Fonction Pow en récursion C++

double exponencial(double x, int n){ 
if(n>0) 
return (pow(x,n)/n)+exponencial(x,n-1); 
return 1; 
} 
+5

Je suis curieux, pourquoi avez-vous pensé qu'il ne peut pas être utilisé? – StoryTeller

+1

Vous pouvez l'utiliser. Dans ce cas particulier, c'est évidemment une mauvaise idée. Le nom de la fonction est également une mauvaise idée, car ce n'est pas ce que vous êtes en train de calculer. –

Répondre

0

Vous pouvez utiliser toutes les fonctions de récursivité. pow est simplement une fonction rien de spécial à ce sujet.

+1

D'accord, mais peut-être devrait noter qu'il existe quelques fonctions qui ne sont pas adaptées à la récursivité - certaines des fonctions de temps et par exemple 'strtok'. –

+0

quelqu'un m'a dit que je ne pouvais pas et je pensais que c'était bizarre ... Merci! –

0

La récursion ne limite pas les fonctions que vous pouvez ou ne pouvez pas utiliser. Donc oui, pow peut être utilisé dans une fonction récursive.

Dans votre exemple, pow(x,n) sera appelée en premier (plus probablement), et la valeur de retour sera divisée par n. Ensuite, toutes les données pertinentes sont poussées sur la pile (y compris la réponse du calcul que nous venons de faire), et exponencial(x,n-1) est appelée. Lorsque cet appel récursif revient, les données sont à nouveau retirées de la pile et notre résultat final est calculé et renvoyé.

1

OUI .. Vous pouvez

est juste une fonction qui fonctionne comme toute autre fonction que vous avez écrit