Factoriel

SMM@
Messages postés
12
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
15 mars 2018
- Modifié par SMM@ le 11/03/2017 à 13:21
KX
Messages postés
16540
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 mai 2022
- 11 mars 2017 à 14:42
bonjour svp j'ai essayer de créer un petit programme pour le calcule de la factoriel il marche avec des petits nombres mais pas avec les grandes nombres comme 100 (il m'affiche 0 !!!!!!!)
si vous pouvez m'aider merci d'avance


public class Factoriel {


public static void main(String[] args) {
Long a=100;
Long b=a;
a=1;
for(int i=1;i<=b;i++){
a=a*i;
}
System.out.println(a);
}
}

1 réponse

jordane45
Messages postés
35477
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
356
11 mars 2017 à 14:04
Bonjour,

Je pense que cela peut avoir une incidence ...

long : (8 octets ) entiers compris entre -9223372036854775808 et +9223372036854775807 (-263 et 263-1)


et 100! => 10^158


Donc :
LONG => 2^63 => 9,22337E+18
100 Factoriel => 10^158 => 1E+158

Ton "long" n'est pas assez grand pour contenir la valeur de 100!

A mon avis tu dois t'orienter vers http://imss-www.upmf-grenoble.fr/prevert/Prog/Java/CoursJava/lesBig.html

0
KX
Messages postés
16540
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 mai 2022
124
Modifié par KX le 11/03/2017 à 14:42
Tout à fait. J'ai d'ailleurs écrit un article à ce sujet.

http://codes-sources.commentcamarche.net/source/100781
0