CALCULER LA FACTORIELLE JUSQU'À 5409! AVEC JSP ET L'AFFICHER SUR BROWSER EN UN T

Signaler
Messages postés
28
Date d'inscription
jeudi 15 octobre 2009
Statut
Membre
Dernière intervention
12 décembre 2013
-
piksou14
Messages postés
1
Date d'inscription
samedi 9 décembre 2017
Statut
Membre
Dernière intervention
9 décembre 2017
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52972-calculer-la-factorielle-jusqu-a-5409-avec-jsp-et-l-afficher-sur-browser-en-un-tableau

piksou14
Messages postés
1
Date d'inscription
samedi 9 décembre 2017
Statut
Membre
Dernière intervention
9 décembre 2017

bien
cs_janhsh
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015

Voici un algo beaucoup plus rapide

public Xint factorial(int n)
{
if (n < 0){
throw new ArithmeticException("Factorial: n has to be >= 0, but was " + n);
}
if (n < 2){
return Xint.ONE;
} long h n / 2, q h * h; long r (n & 1) 1 ? 2 * q * n : 2 * q;
Xint f = Xint.valueOf(r);
for (int d = 1; d < n - 2; d += 2){
f = f.multiply(q -= d);
}
return f;
}
cs_janhsh
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015

C’est ce que l'on appelle de la programmation trivial ... Tu utilise la définition mathématique de la factoriel pour ton calcul qui est O(n!), c'est à dire très coûteuse en temps...

L'algorithmie nous apprend qu'il existe d'autre méthodes de calcul de factorielle qui sont O(n2), c'est à dire beaucoup plus rapides.
Scupper
Messages postés
28
Date d'inscription
jeudi 15 octobre 2009
Statut
Membre
Dernière intervention
12 décembre 2013

puisque le serveur a refuser de télécharger le fichier ZIP j'ai du écrire le code séparément :S