Décomposer un nombre en somme de chiffres

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: lene56

Bonjour,
Je cherche un algorithme qui me permettrait de décomposer un nombre plus petit que 50 en une somme de chiffres, sachant qu'un même chiffre ne peut apparaitre qu'une seule fois...
exemple : 45 = 1+ 2+ 3+4+5+6+7+8+9
7 = 1+2+4
5= 3+2 ou 4+1

merci d'avance !



Posted by: Escarpe

Vu les conditions de départ, on peut atteindre tous les nombres de 1 à 45.
Si le but est d'obtenir une solution et pas toutes les solutions, j'opterais pour un algorithme simple, comparable à celui qu'on utilise pour transformer simplement un nombre en base 10 en base 2:
- retirer le plus grand chiffre possible du nombre à atteindre (ce chiffre fait partie de la solution)
- itérer sur le reste

Par exemple, prenons 20:
9 => reste 11
8 (9 a déjà été utilisé) => reste 3
3 => 3 + 8 + 9 = 20











-