Fonction récursive simple en C ANSI

cs_pedu Messages postés 4 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 3 juillet 2003 - 10 mai 2003 à 12:54
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 10 mai 2003 à 13:10
Bonjour à tous,

je suis un jeune développeur et j'aimerai avoir un exemple
sur l'utilisation d'une fonction récursive simple en Langage C

int facto(int);

void main(void)
{
int Nbr = 0;

printf("Entrez un nomnre entier\n");
scanf("%d", &Nbr);
printf("Le factoriel de %d est %d", Nbr, facto(Nbr));
}

int facto(int N)
{
if(N == 0)
{
return 1;
}
else
{
return (N*facto(N-1));
}
}

J'essaie l'exemple précédent mais fact() me retourne 0 à chaque sortie ??? Comment faire ?

Merci d'avance

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 mai 2003 à 13:10
int FactRecur(int n)
{
return n > 1 ? n * FactRecur(n - 1) : 1;
}

double FactIter(WORD n) // maxi 170
{
double d = 1;
while(n > 0) d *= n--;
return d;
}

double Fibonacci(int n) // maxi 1476
{
if(n < 2) return n;
int i = 2; double d 0, a 0, b = 1; while(i++ <n) {d a + b; a = b; b = d;}
return d;
}
Prends iteratif si possible.
+ rapide et sans risque pour la pile.
BruNews, ciao...
0
Rejoignez-nous