Programme avec boucle while

Résolu
abdelkarim_jb Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
abdelkarim_jb Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

est ce que vous pouvez me proposez ( en langage pascal ) un programme qui determine la plus grande valeur de n telle que la somme des n premiers nombres positifs soit inferieure a un nombre max entré par l'utilisateur ??
( exemple si max := 20 la reponse sera n=5, car 1+2+3+4+5=15 alor que 1+2+3+4+5+6=21 !! )

Merci

1 réponse

Akronos Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   32
 
Je connais pas le pascal, mais voilà un algo:

Var  
 totalInf, totalSup, n, nbMax, nbAjouter: entier  
Début  
 totalInf = 0  
 totalSup = 0  
 n = 0  
 nbAjouter = 1  
 Afficher("Saisisser le nombre max")  
 Saisir(nbMax)  
 TantQue(totalSup <= nbMax) Faire  
  Si((totalSup + nbAjouter) < nbMax) Alors  
   totalInf = totalSup + nbAjouter  
   totalSup = totalInf  
  Sinon  
   totalSup = totalSup + nbAjouter  
  FinSi  
  nbAjouter = nbAjouter + 1  
  n = n + 1;  
 FinTantQue  
   
 Afficher("La plus grande valeur de n tel que la somme des n premiers chiffres est inférieur ou égal à " + nbMax + ", est n = " + nbAjouter + ", avec " + n + " Iterations et un total de " + totalInf)  
Fin
1
abdelkarim_jb Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
Ben Jte Remercie Sa Mété Vraimen Utile ( Pfffffffffff Jme sui Arraché les Cheveu en cherchan l'idée je n'en avai aucune :s )

Voila le corps du Program : "
program ex3p7;

var Tinf, Tsup, n, Max, Tmp : integer;

begin
Tinf := 0;
Tsup := 0;
n := 0;
Tmp := 1;
writeln('Introduisez un Nombre :');
readln(Max);
while (Tsup<=Max) do
begin
if (Tsup + Tmp)<Max then
begin
Tinf := Tsup + Tmp;
Tsup := Tinf;
end
else
Tsup := Tsup + Tmp;
inc(tmp);
inc(n);
end;
writeln('La Plus grande Valeur de N C''est : ', n-1, ' Avec une Somme De ', tinf);
readln;

end."

Si sa peu Aidé les autres :)
0