Exercice Corrige Java : calcul de combinaisons
Synthèse : calcul de combinaisons
Écrire un programme qui affiche toutes les manières possibles d’obtenir un franc avec des pièces de 2 centimes, 5 centimes et 10 centimes. Dire combien de possibilités ont ainsi été trouvées. Les résultats seront présentés ainsi :
1 F = 45 X 2c + 2 X 5c
1 F = 40 X 2c + 4 X 5c
1 F = 35 X 2c + 6 X 5c
1 F = 30 X 2c + 8 X 5c
1 F = 25 X 2c + 10 X 5c
1 F = 20 X 2c + 12 X 5c
1 F = 15 X 2c + 14 X 5c
.....
1 F = 15 X 2c + 7 X 10c
1 F = 10 X 2c + 2 X 5c + 7 X 10c
1 F = 5 X 2c + 4 X 5c + 7 X 10c
1 F = 6 X 5c + 7 X 10c
1 F = 10 X 2c + 8 X 10c
1 F = 5 X 2c + 2 X 5c + 8 X 10c
1 F = 4 X 5c + 8 X 10c
1 F = 5 X 2c + 9 X 10c
1 F = 2 X 5c + 9 X 10c
1 F = 10 X 10c
En tout, il y a 66 façons de faire 1 F
SOLUTION
public class Combis{
public static void main (String[] args)
{
int nbf ; /* compteur du nombre de façons de faire 1 F */
int n10 ; /* nombre de pièces de 10 centimes */
int n5 ; /* nombre de pièces de 5 centimes */
int n2 ; /* nombre de pièces de 2 centimes */
nbf = 0 ;
for (n10=0 ; n10<=10 ; n10++)
for (n5=0 ; n5<=20 ; n5++)
for (n2=0 ; n2<=50 ; n2++)
if ( 2*n2 + 5*n5 + 10*n10 == 100)
{ nbf ++ ;
System.out.print ("1 F = ") ;
if (n2 != 0) System.out.print (n2 + " X 2c") ;
if (n5 != 0) { if (n2 != 0) System.out.print (" + ") ;
System.out.print (n5 + " X 5c") ;
}
if (n10 != 0) { if ((n2 != 0) || (n5 != 0)) System.out.print (" + ") ;
System.out.print (n10 + " 10c") ;
}
System.out.println () ;
}
System.out.println ("En tout, il y a " + nbf + " facons de faire 1 F") ;
}
}
Article plus récent Article plus ancien