robapt
Messages postés114Date d'inscriptionmardi 6 juillet 2004StatutMembreDernière intervention 4 décembre 2009
-
26 janv. 2008 à 01:51
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDerniè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
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 20133 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 ...!
cs_ecube
Messages postés4Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention29 janvier 20082 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?............
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 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