Recursivité
salut je veux savoir la deference entre la recursivité terminal et non terminale et aussi je veux quelque exercice corigé
4 réponses
-
ModérateurSalut,
voici un exemple
récursion classique#include <stdio.h> unsigned int factoriel (unsigned int); int main () { int nb; printf ("Entrez un numéro entier : "); scanf ("%u", &nb); printf ("%u! = %u\n", nb, factoriel (nb)); return 0; } unsigned int factoriel (unsigned nb){ if (nb < 2) return 1; else return nb * factoriel (nb - 1); }récursion terminale#include <stdio.h> unsigned int factoriel (unsigned int, unsigned int); int main () { int nb; printf ("Entrez un numéro entier : "); scanf ("%u", &nb); printf ("%u! = %u\n", nb, factoriel (nb,1)); return 0; } unsigned int factoriel (unsigned nb, unsigned n){ if (nb == 0) return 1; else if (nb == 1) return n; else return factoriel(nb - 1, nb * n); }
-
est que la recurtion classique est la meme chose que la recursivité non terminal et encor jai pas bien saisi la deference
-
ModérateurDans la récursion terminale il n'y a pas de remontée dans la pile des appels
-
Dès qu'il faut chercher un peu c'est la fin :/
http://www.commentcamarche.net/forum/affich 4299210 algo recursivite terminale#0