👤
Elenacansys
a fost răspuns

Realizați un algoritm C++ care determină dacă un număr natural n este un număr putere a lui 2.
Exemple:
Date de intrare - - - - - - Date de ieșire
n=1024 - - - - —--------------- Da
n=8 - - - - - - - - - - - - - - - - - Da
n=31 - - - - - - - - - - - - - - - - -Nu​


Realizați Un Algoritm C Care Determină Dacă Un Număr Natural N Este Un Număr Putere A Lui 2ExempleDate De Intrare Date De Ieșire N1024 Dan8 Dan31 Nu class=

Răspuns :

Răspuns:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

   int n, a, b;

   cin>>n;

   if (ceil(log2(n))==(float)log2(n)) cout<<"Da"; else cout<<"Nu";

   

   return 0;

}

Explicație:

Teoria: introucem un numar. Daca log in baza 2 din n, rotunjit (ceil) va fi egal cu log in baza 2 din n, atunci se afiseaza da, daca nu se afiseaza nu.

Ex: (1)

n=8;

log2(8)=3; ceil(log2(8))=3, se afiseaza da

Ex: (2)

n=9;

log2 (9)= 3.169......; ceil (log2(9))=4                ceil- rotunjirea la cel mai mare numar intreg;

Pentru folosirea logaritmelor si a rotunjirii este nevoie de biblioteca <cmath> sau <math.h>

Daca ceva neclar ma intrebi