Subprogramul pDoi are un singur parametru, n, prin care primește un număr natural (n∈[1,10^9]).
Subprogramul returnează cea mai mare valoare din intervalul [1,n], cu proprietatea că este o putere a
lui 2.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=20, subprogramul returnează 16.
Rezolvare in C++ cu explicatii ! Multumesc anticipat !
Răspunsuri la întrebare
Răspuns de
5
Răspuns:
int pDoi( int n ) {
int p2 = 1;
while ( p2 * 2 <= n )
p2 *= 2;
return p2;
}
Explicație:
/// p2 este o putere a lui 2, initial 1 ( cea mai mica putere a lui 2 )
daca am mari puterea si ar deveni mai mare decat n, atunci bucla se opreste
Daca nu, puterea se mareste si bucla se reia
Se returneaza in final puterea
Nu-ti face griji de depasiri, urmatoarea putere dupa 1e9 incape in int
catalintalent248:
Ce inseamna p2*=2? Mai trebuia sa urmeze ceva dupa * ?
Alte întrebări interesante
Studii sociale,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Chimie,
9 ani în urmă