Bonjour,
j'essaie d'écrire un programme avec une fonction récursive qui, à partir d'une liste des NB entiers et une somme donnée, calcule et affiche un sous-ensemble des nombres dont la somme est la somme en question.
Si un tel sous-ensemble existe, sinon un message indiquant la non-existence d'un tel sous-ensemble doit apparaître.
Par exemple, pour la liste : 5, 13, 24, 9, 3, 3 et somme_donnee=. 28, mon programme doit afficher : 13, 9, 3, 3.
---------------
Voici ce que j'ai fait:
Bool recherche (int tab, int nb, int somme_donnee)
{
If (tab[nb-1] = = somme_donnee)
{
Afficher tab[nb-1];
Return (vrai);
}
//Si on suppose une valeur vrai donc la somme cherchee n //est plus somme_donnee, mais somme_donnee – tab[nb-1].
If (nb>1 && recherche (tab, nb-1, somme_donnee – tab[nb-1]))
{
}
Afficher tab[nb-1];
Return (vrai);
}
//Autrement, on reduit le tableau en prenant de element 1 a l’avant //dernier element au lieu du dernier.
If (If nb>1 && recherche (tab, nb-1, somme_donnee)
{
Return (true);
}
Return (false);
}
}
Quelqu'un peut m'aider à poursuivre, je n'arrive à trouver quoi ce qu'il manque pour que le programme fonctionne?
-----