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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 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 38143 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
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
Rejoignez-nous