Informatică, întrebare adresată de alinamanea19, 9 ani în urmă

Scrieti succesiunile de litere pe care le va afisa algoritmul daca x=9 si y=2.
cin>>x>>y;
while( x>=y )
{
cout<<"a";
x=x-y;
cout<<"b";
}

Răspunsuri la întrebare

Răspuns de artur99
0
Păi, să analizăm algoritmul:
1. Stocăm în x valoarea 9, iar în y valoarea 2.
2. Verificăm condiția din while(x>=y   /   9>=2) - este adevărată
3. Afișăm „a”
4. Scădem din x un y(x = 9-2 = 7)
5. Afișăm „b” (avem „ab” pe ecran acum)
6. Verificăm condiția din while(x>=y   /   7>=2) - este adevărată
7. Afișăm „a” (avem „aba” pe ecran acum)
8. Scădem din x un y(x = 7-2 = 5)
9. Afișăm „b” (avem „abab” pe ecran acum)
10. Verificăm condiția din while(x>=y   /   5>=2) - este adevărată
11. Afișăm „a” (avem „ababa” pe ecran acum)
12. Scădem din x un y(x = 5-2 = 3)
13. Afișăm „b” (avem „ababab” pe ecran acum)
14. Verificăm condiția din while(x>=y   /   3>=2) - este adevărată
15. Afișăm „a” (avem „abababa” pe ecran acum)
16. Scădem din x un y(x = 3-2 = 1)
17. Afișăm „b” (avem „abababab” pe ecran acum)
18. Verificăm condiția din while(x>=y   /   1>=2) - este falsă, ieșim din while.
19. Încheiem programul

Deci se va afișa: „abababab”.
O altă metodă ar fi folosind logica: dacă se vor verifica câteva din primele repetiții, se poate observa că din x se tot scade y până acesta ajunge mai mic decât y, așadar este vorba despre o scădere repetată, deci o împărțire. Asta ar însemna că acele instrucțiuni din while se vor repeta de x/y (împărțire întreagă) ori.
Adică, dacă avem 9 și 2, 9/2 este 4, deci se va repeta de 4 ori, deci va fi „ab” de 4 ori, deci „abababab”. :D
Alte întrebări interesante