Page 1 sur 1

Addition de maximum 13 nombres

MessagePosté: Lundi 08 Août 2011, 21:06
par Nicole 14
Qui pourrait m'aider à résoudre le problème suivant: "Parmi les 5 nombres 712, 715, 718, 721, 724 , quel est celui que l'on ne peut pas obtenir en additionnant au maximum 13 nombres parmi des 18, 71 et 87 . Merci d'avance pour ce que vous m'écrirez."

Re: Addition de maximum 13 nombres

MessagePosté: Mardi 09 Août 2011, 00:12
par Framboise
Bonjour,

Je tenterais une triple boucle for pour balayer:
i * 18 + j * 71 + k * 87
avec i + j + k <= 13
et comparer successivement avec les n = 712, 715, 718, 721, 724
J'espère avoir compris correctement "additionnant au maximum 13 nombres parmi des 18, 71 et 87". :?:

n = ....
for i = 0 to 13
for j = 0 to 13
for k = 0 to 13
if ( i * 18 + j * 71 + k * 87 = n) AND ( i + j + k <= 13 ) then PRINT "Solution trouvée pour n = "; n
next k
next j
next i

Cela ne ferait que 14 * 14 * 14 = 2744 boucles en méthode force brute, ce qui est sans problème de temps pour un programme sans qu'il soit nécessaire d'écourter sur les boucles surnuméraires. Peu importe qu'un n ait une ou plusieurs solutions.

Résultats i, j, k:
712 -> rien
715 -> rien
718 -> 3, 2, 6 ( solution unique )
721 -> 1, 5, 4 ( solution unique )
724 -> rien

"quel est celui ..." :shock: :mrgreen:

Re: Addition de maximum 13 nombres

MessagePosté: Mardi 09 Août 2011, 09:27
par Nicole 14
Un tout grand merci à Framboise.