Recursivité

nadi_moni Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   -
salut je veux savoir la deference entre la recursivité terminal et non terminale et aussi je veux quelque exercice corigé

4 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

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);
}



0
nadi_moni Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
est que la recurtion classique est la meme chose que la recursivité non terminal et encor jai pas bien saisi la deference
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Dans la récursion terminale il n'y a pas de remontée dans la pile des appels
0
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342
 
0