Factoriel

SMM@ 12 Messages postés dimanche 7 février 2016Date d'inscription 18 mai 2017 Dernière intervention - 11 mars 2017 à 13:20 - Dernière réponse : KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention
- 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);
}
}
Afficher la suite 

2 réponses

Répondre au sujet
jordane45 19249 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 11 mars 2017 à 14:04
0
Utile
1
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

KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 11 mars 2017 à 14:42
Tout à fait. J'ai d'ailleurs écrit un article à ce sujet.

http://codes-sources.commentcamarche.net/source/100781
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.