Itératif vers récursive

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

A voir également:

2 réponses

Owersystem Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   29
 
--
Je crois qu'il n'y ai aucune astuce.





Owersystem,membre de Commentçamarche.net.
Facebook : Douglas Owersym.
0
boubou1987
 
alors comment faire pour résoudre mon problème?????
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 ;-)
0
boubou1987
 
merci de m'avoir répondu si tu peu me donner des exemples en C
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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;
}
0
boubou1987
 
merciiiiiiiiiiiiii c trè gentil de ta part
0