Iei o variabila i cu care mergi de la 0 la radical din 10000 adica 100. Deci mergi de la 0 la 99 si afisezi i*i (adica i inmultit cu i). Atat, e f. simplu.
@eucosti
Corect cum ai zis, dar merge direct afisat i*i, fara inca o variabila inutila.
Ok.
Deci ce e un patrat perfect? Orice numar ridicat la puterea a 2-a.
Algoritmul tau va incepe de la primul patrat perfect [1],apoi va trece la urmatoarele patrate perfecte si pe fiecare, il verifica, daca e sau nu mai mic decat 100.000.As zice sa folosesti ciclul "while", pentru ca nu stii numarul de pasi pe care ii face, dar stii cand se opreste.[Cand ultimul patrat verificat depaseste numarul 100.000].Altfel spus, "Cat timp patratul pe care il verific este mai mic decat 100.000, il afisez si pe urma trec la urmatorul".
Ok, o parte din problema rezolvata.Acum cum "treci de la un patrat perfect la altul?".Cum spuneam, patrat perfect = orice numar ridicat la puterea a doua.Nu poti trece de la 4 la 9 facand 4+5, si nici de la 9 la 16 facand 9+7.
1 la a doua =1.
2 la a doua = 4.
3 la a doua =9.
4 la a doua =16.
5 la a doua =25.
6 la a doua =36.
7 la a doua =49.
etc etc.Foloseste o variabila i pe care o initializezi la 1 (int i=1
si iei toate numerele incepand de la 1; O variabila, pe care eu o numesc "a" va retine noul numar [i-ul ridicat la puterea a doua], daca este adevarat ca "a" e mai mic decat 100.000, il afisezi si [pe urma il cresti pe i cu 1 (i=i+1 sau i++), iar apoi ciclul o ia de la capat. Daca este fals, si numarul este mai mare, ciclul se opreste automat. Uite cum ar arata in pseudocod :
cat timp ('a' este mai mic decat 100.000)
{ afiseaza-l pe 'a';
creste pe 'i' cu 1;
'a' va fi egal cu 'i' la puterea a doua;
}
Varianta asta e cam trasa de coada... dar am facut'o pe moment
Daca ai intrebari trimite'mi un mesaj
for (float i=1; i
CristinaP20 întreabă: