Bonjour,
J'ai écrit une fonction récursive qui calcule la factorielle d'un entier. J'utilise la classe Long.
J'affiche le résultat dans la console, et ça marche jusqu'à 20!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // Calcule n! private Long Fact(Long n) { if( n <= 1 ) return Long(1); else return n*Fact(n-1); }
me donne 2432902008176640000
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println(Fact(20L));
mais
donne -4249290049419214848
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println(Fact(21L));
Où est mon erreur ?
Merci
Philippe
Partager