Calcul de la factorielle de n , en java avec boucle for
Bonjour je suis nouveau sur votre forum, je suis débutant en programmation (3 semaines) j'ai découvert le forum en tapant sur google 'algorithme factorielle en java. J'en ai retrouvé un, mais il n'y avait pas de méthode main. Je l'ai donc complété.
Je fais encore souvent beuacoup de petites fautes, mais aussi des grosses. Je n'ai pas pu exécuter mon code car je ne sais pas utilisé Eclipse. J'aimerais savoir si ce que j'ai fait est juste ?
Je dois calculer la factorielle de n
Je dois utilisés une boucle for et pas de formule mathématique.
Code:
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 26 27 28 29 30 31 32
| *import ordinateur.clavier;
*import ordinateur.ecran;
public class factorielle
{
public static void CalculerLaFactorielleden (int n)
{
// PRECONDITION : Le nombre entré est un nombre entier (un int), pas de nombre à virgules
// Le nombre entré est un nombre entier positif (pas de nombre négatif )
// Invariant : 0!=1
// (x+1)!=(x+1)*x! (x est un Naturel.)
int fact = 1;
for (int i=1; i<=n; i++) {
fact = fact * i;
}
return fact;
}
System.out.println(fact);
}
// POSTCONDITION : Le résultat est affiché
public static void main (String [] args)
{
final int max = m;
ecran.afficher ("Entrez un Int");
int n = clavier.lireUnInt();
}
} |
Aide sur BigInteger pour le calcul de la factorielle des Bigint
Bonjour,
Je suis débutante dans le monde de l'informatique et j'essaie d'écrire un programme pour le calcul de la factorille des grand nombre (BinInteger)
Pour celà, j'ai reussie à ecrire un programme sans faute syntaxique (la chance!! :D) mais au moment de l’exécution des lignes et des lignes rouuges et je ne comprends pas la cause
je vous mets mon programme ci-dessous, si jamais une personne pourrait m'aider à comprendre ce qui ne marche pas
Code:
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 26 27
| import java.math.BigInteger;
import java.util.Scanner;
public class exo73tp1 {
private static Scanner clavier = new Scanner(System.in);
public static void main(String[] args) {
BigInteger n;
System.out.println("Donnez un nombre entier");
n = clavier.nextBigInteger();
System.out.println(n + "! = " + facto2(n));
}
//A partir de la valeur n=12 le programme ne donne plus des valeurs correctes
//Soltuion BigInteger
public static BigInteger facto2(BigInteger n) {
BigInteger res = BigInteger.valueOf(1);
if (n.equals(0))
return res;
else
return res=n.multiply((facto2(n.subtract (res)))); //Je veux travailler avec une fonction recurssive
//Message d'erreur: java.math.BigInteger.subtract(Unknown Source)
}
} |