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 = 50 X 2c
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

Leave a Reply

Telechargement