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 : Sélectionner tout - Visualiser dans une fenêtre à part
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