Partage
  • Partager sur Facebook
  • Partager sur Twitter

euros

une affaire d'équations?

Sujet résolu
    12 octobre 2008 à 20:31:44

    Bonjour à tous je souhaite vous exposer mon problème j'ai un exercice pour mon école mais je ne sais pas du tout par où commencer. Je dois écrire un programme qui affiche toutes les manières possibles d'obtenir un euro avec des pièces de 1 centime, 2 centimes, 5 centimes et 10 centimes. Combien de possibilités ont ainsi été trouvées. Les résultats seront présentés ainisi :

    1 E = 100*1c
    1 E = 98*1c + 1*2c
    1 E = 96*1c + 2*2c

    Je pense qu'il ya une histoire d'équations a résoudre mais je ne suis pas sur du tout étant que l'on aura une équation pour quatre inconnues. Ou alors je penser créer des variables qui seront fixées des le début que j'incrémenterais ou je décrémenterais selon envie mais bon je ne sais vraiment pas.

    Je vous demande de l'aide :euh: . Merci d'avance pour vos réponses.
    • Partager sur Facebook
    • Partager sur Twitter
      12 octobre 2008 à 22:23:46

      Je partirais sur un truc du genre comme ça : on commence avec 100 * 1c.
      A chaque tour on remplace 2 * 1c par 2c.
      Une fois qu'on a 50 * 2c on a obtenu toutes les combinaisons possibles avec 1c et 2c.
      ON reprend toutes ces combinaisons déjà obtenues et à chaque tour on remplace cette fois 5 * 1c par 5c.
      Puis après de même avec les 10... mais on peut aussi prendre 2*5 ou 5*2.

      Sinon ben brute-force avec 4 boucles imbriquées. Le temps de calcul ne doit pas être si énorme que ça.
      • Partager sur Facebook
      • Partager sur Twitter
        12 octobre 2008 à 23:07:29

        C'est simple, en fait tout est dans les boucles, tu crée un nombre de variables égales aux valeurs réelles genre la variable cinqCentimes, dixCentimes, etc... En suite tu crée autant de boucles que de variables (des boucles imbriquées) et en suite tu n'a plus qu'à faire des instructions de contrôle (if) pour récupérer les différentes façons de 1 euro.

        Évidement je ne te donne pas du code tout fait car mon but n'est pas de te donner tout le boulot sans que t'aies rien à faire mais de t'aider en te mettant sur la bonne voie.
        • Partager sur Facebook
        • Partager sur Twitter
          13 octobre 2008 à 15:22:29

          Perso, quand tu auras trouvé, je serai heureux de voir l'algo, car après avoir passer un peu de temps à chercherça à l'air quand même chaud!!
          • Partager sur Facebook
          • Partager sur Twitter
            13 octobre 2008 à 18:28:45

            C'est un problème de combinatoire plutot simple.

            int piece1,piece2,piece5,piece10;
            
            for (piece10 = 0; piece10 <= 10; piece10++)
            {
                for (piece5 = 0; 10*piece10 + 5*piece5 <= 100; piece5++)
                {
                    for (piece2 = 0; 10*piece10 + 5*piece5 + 2*piece2 <= 100; piece2++)
                    {
                        piece1 = 100- (10*piece10 + 5*piece5 + 2*piece2);
                        afficherResultat();
                    }
                }
            }
            
            • Partager sur Facebook
            • Partager sur Twitter
              13 octobre 2008 à 22:10:35

              Merci à toi flooder c'est vraiment sympa de ta part de m'avoir donné la réponse.
              Je tiens à remercier tous ceux qui ont contribué à la résolution de mon problème.
              Je tiens à remercier tout particulièrement colibri qui m'a été d'une grande dans la partie analyse.
              Merci à tous et bonne soirée.
              • Partager sur Facebook
              • Partager sur Twitter

              euros

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown