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)!
resultat
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) ; } }
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
Partager