Informatică, întrebare adresată de CiobanuDan2007, 8 ani în urmă

Scrieti un program in C++ care determina pentru fiecare numar citit ,cea mai mica valoare mai mare sau egala cu acesta ce reprezinta o putere a lui 2.Un numar natural x este putere a lui 2 daca exista un numar natural k astfel incat x=2^k.
Ex.Date de intrare:
5
3 5 8 9 12
pe ecran se va afisa: 4 8 8 16 16
Ajutati-ma va rog cu acest algoritm. Fara vectori (nu i-am invatat) si in cel mai simplu mod va rog.

Răspunsuri la întrebare

Răspuns de Denhar
1
#include <iostream>
using namespace std;
int main()
{
int n,i,x=1,m;
cin >> n;
for(i=1;i<=n;i++)
{
cin >> m; /// citim prin for cele n valori de citit indicate prin n
while(x <= m)
x*=2;
cout << x << " "; /// am pus " " pentru a lasa un spatiu intre fiecare termen
}
return 0;
}

CiobanuDan2007: Multumesc , sper sa fie corecta.
Denhar: eu zic că este.
CiobanuDan2007: imi afiseaza 4 8 16 16 16
boiustef: de asupra lui while pune x=1;
boiustef: tr de initializat x pt fiecare numar introdus
Denhar: da, așa e. nu am observat. nu mai pot edita.
boiustef: cred, face el singur ... :)))
Denhar: mersi ca ai observat !
boiustef: nu e pt ce, se mai intampla
Alte întrebări interesante