Bonjour,
Je suis actuellement en train de résoudre ce problème : https://projecteuler.net/problem=20,
cependant un gros problème que je ne comprend pas se pose à moi; lorsque je souhaite calculer
avec mon algorithme le factorielle de 5, tout marche parfaitement. Mais quand j'essais par exemple
de calculer le factorielle de 100, ça marche plus, ça retourne 0. Je me suis demandé si c'était un problème de type
de variable, cependant que ce soit des long ou des int, le résultat est identique...
PS: J'ai décidé de ne pas vous montrer les autres méthodes qui de toutes façon marchent parfaitement bien,
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 public static void main(String[] args) { System.out.println(factorial(5));//affiche 120 System.out.println(factorial(100)); //afficher 0 alors que le resultat devrait etre 9.332622e+157 } public static int factorial(int value) { int result = 0; if(isStrictlyPopsitive(value)) { result = 1; for(int i = 1; i <= value; i++) result *= i; } return result; } public static boolean isStrictlyPositive(int value) { if(value > 0) return true; else return false; }
et j'en profite pour dire que sans vérifier si la valeur est strictement positive, le résultat reste le même.
Partager