mon programme donne une valeur fausse
mon programme donne une valeur fausse !
j'ai ecrit un programme qui demande à l' utilisateur de saisir deux entiers positifs non nuls p et n. p étant bien sûr inférieur à n. Puis le programme affiche la combinaison de p dans n.
voilà la formule
n!/p! * (n-p)!
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
|
package Mesessaies;
import java.util.Scanner;
public class exercice1
{
public static void main (String []args)
{
int p,n; int factorielp=1,factorieln=1,factorieln_p=1;
Scanner sc=new Scanner(System.in);
System.out.print("entrez un nb entier non nul p:");
p=sc.nextInt();
System.out.print("entrez un nb entier non nul supérieur à p:");
Scanner sc1=new Scanner(System.in);
n=sc.nextInt();
for(int i=1; i<=n; i++)
{
factorielp+=i;
}
for (int i=1; i<=n;i++)
{
factorieln+=i;
}
int n_p=n-p;
for (int i=1; i<=n_p; i++)
{
factorieln_p +=i;
}
int combinaison=(factorieln)/(factorielp)*(factorieln_p);
System.out.println( "valeur combinaison="+combinaison) ;
}
} |
resultat
entrez un nb entier non nul p:3
entrez un nb entier non nul n supérieur à p:9
valeur de combinaison =:22
après la forumule, valeur de combinaison doit être 18 mais le prg trouve 22
n/p*(n-p)
9/3*(9-3)
3*6=18
Où est ce que je fais erreur ? veuillez m’expliquez s’il vous plaît