Fonction factorielle qui bug
Bonsoir à tous,
voilà j'ai écrit une fonction factorielle, mais le résultat affiché, n'est plus correct à partir de 32.
ça fait rager ! le programme compile, on croit qu'il est bon, mais là, on se rend compte qu'il bug!!! rrh
voici la source que j'ai écrit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include <stdio.h>
#include <stdlib.h>
long factoriel (long a)
{
if(a<=1) return 1;
return a*factoriel(a-1);
}
int main()
{
int nb;
printf("Veuillez saisir un nombre : ");
scanf("%d", &nb);
printf("\n % d! = %ld\n\n\n\n", nb, factoriel(nb));
return 0;
} |
Je vous remercie de l'aide que vous pourrez m'apporter.