Bonjour à tous!
J'ai un petit problème avec ce bout de code qui calcule les factoriels de 1! à 25!. En effet, 21! affiche un résultat négatif. Je ne comprend pas pourquoi
Voici le bout de code que j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class Factorial { // Evaluate n! public static long factorial(int n) { if (n <= 1) // base case return 1; else return n * factorial(n - 1); } // Simple test program public static void main(String [] args) { for (int i = 1; i <= 25; i++) System.out.println(i + "! = " + factorial(i)); } }
Voici l'affichage:
Merci pour votre aide, ou pour vos suggestions!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 10! = 3628800 11! = 39916800 12! = 479001600 13! = 6227020800 14! = 87178291200 15! = 1307674368000 16! = 20922789888000 17! = 355687428096000 18! = 6402373705728000 19! = 121645100408832000 20! = 2432902008176640000 21! = -4249290049419214848 22! = -1250660718674968576 23! = 8128291617894825984 24! = -7835185981329244160 25! = 7034535277573963776
Loader
Partager