Algorithme ?

robapt Messages postés 114 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 4 décembre 2009 - 26 janv. 2008 à 01:51
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 - 27 janv. 2008 à 23:12
Bonsoir à tous !

Je cherche depuis maintenant plus de 2 heures sans écrire une ligne concluante ...

Mon but est d'écrire un petit programme utilisant un algorithme afin de trouver toutes les possibilitées de faire un euro avec 1, 2, 5, 20 et 50 centimes !Je sais qu'il y a 196 façons de faire 1 euro avec ses 5 valeurs (si sa peut aider quelqu'un pour vérifier ).

Je débute en C mais j'ai encore du mal avec les algorithmes! Je n'est pas encore cette logique dans le sang ... lol

Bon ben merci de me répondre! 

Bonne prog à tous

3 réponses

nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
26 janv. 2008 à 05:26
Salut,
une astuce serait de soustraire recursivement chacune des 5 valeurs de centimes du montant en euros.
jusqu'a ce que tu arrives a la fin;(empiles les operations);
lorsque tu arrives a un chiffre negatif ou qu'il ne reste plus de valeur de centimes , fait un rollback et recommence avec une autre :
ca ressemble un tout petit peu a l'algorithme MinMax(parcours alpha-beta)  pour les jeux en intelligence artificielle.

je suis heureux de faire partie d'une grande famille ...!
0
cs_ecube Messages postés 4 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 29 janvier 2008 2
27 janv. 2008 à 02:21
Ou méthode bourrin qui marche à tout les coups:
Tu fait 5 boucles for qui additionne les différentes pièces avec arret (break;) dès que ca dépasse 1?. Si tu trouve 1? alors tu stocke la solution dans un tableau et tu casse la boucle aussi.

Le nombre de boucles sera majoré par 20^5. C'est très honnête pour un PC. Mais ne prend pas la même chose pour 1000?............
0
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
27 janv. 2008 à 23:12
Bonsoir


je verrais bien un algo récursif:

j'ai x à faire avec des pièces de valeur a(1) ... a(n)
pour i = 1 à n, a(i) <= x
   mettre la pièce a(i) dans le tableau
   si a(i) == x afficher
   si a(i) > x arréter la boucle
   sinon
     récursiver avec x <-- x - a(i)
     et en n'autorisant que les a(j) , j >= i
fin pour
0
Rejoignez-nous