Itératif vers récursive
boubou1987
-
boubou1987 -
boubou1987 -
Bonjour,
la récursivité pour moi est la bête noir
svp y a t il des astuces pour passer d'une version itérative vers une version récursive????
merci d'avance
la récursivité pour moi est la bête noir
svp y a t il des astuces pour passer d'une version itérative vers une version récursive????
merci d'avance
2 réponses
-
--
Je crois qu'il n'y ai aucune astuce.
Owersystem,membre de Commentçamarche.net.
Facebook : Douglas Owersym. -
On peut toujours passer d'une fonction itérative à une fonction récursive.
Remarque : l'inverse est faux, il existe des algorithmes récursifs qui ne peuvent pas être traités avec des boucles...
Quels sont les langages que tu connais ? Que je te donnes des exemples que tu puisses comprendre ;-)-
-
Ici j'ai fait une simple incrémentation alors que la boucle for permet de faire bien plus.
Ce n'est pas magique, il faut réfléchir un peu mais le principe est le même à chaque fois.
Remarque : l'intérêt d'utiliser la récursivité est souvent limité lorsqu'on peut faire la même chose aussi simplement de manière itérative. En effet il vaut parfois mieux utiliser une variable à incrémenter que de charger bêtement la pile qui est limitée en taille...
#include <stdio.h> void f(int i) { printf("%d\n",i); } void iteratif(int n) { int i; for (i=0; // initialisation i<n; // condition d'arrêt i++) // incrémentation { f(i); // calcul } } void recursif(int n,int i=0) // initialisation { if (i<n) // condition d'arrêt { f(i); // calcul recursif(n,i+1); // incrémentation } } int main() { iteratif(5); recursif(5); return 0; } -
-