Algorithme

marocina2000 -  
 greg -
Bonjour,j'ai un exercice dont j'ai besoin d'aide en informatique le sujet est le suivant soit N un nombre entier positif inférieure ou égal à 1000.Trouver tous les entiers strictements positifs dont la somme est égale à N.on rangera les entiers d'un ensemble,en suivant l'ordre croissant,dans un tableau.A la fin le programme doit demander à l'utilisateur s'il a fini de rechercher les entiers.Si oui il sort du programme.Sinon il lui permet d'entrer un autre nombre.

1 réponse

greg
 
Bonjour,
en effet ça paraît très complexe comme ça d'emblais.
Comme souvent en informatique, tu dois diviser pour reigner, donc il faut introduire de la récursivité.
J'évite tous les détails car je suis pressé et que j'ai pas le temps de m'attarder sur les détails, mais voici un squelette assez bon, il te reste à gérer la gestion du stockage des résultats.

partionner(N entier, I indice) {

N l'entier restant a couper
I l'entier minimum à soustraire (pour éviter les doublons)

if (N < I) exit;
if (N == I) return I;

partitionner(N-I, I);
partitionner(N,I+1);

}
0