Cum să calculezi instant 2 la puterea N în C++
Dându-se un număr natural n
, vrem să calculăm valoarea 2^n
(2
la puterea
n
).
Exemplu: Pentru n = 4
, 2^n = 16
.
Metoda 1: Folosim structura repetitivă for
Cea mai ușoară și intuitivă metodă este să folosim o structură repetitivă de
tip for
, care înmulțește repetat un număr cu 2
, de n
ori. Iată codul:
#include <iostream>
using namespace std;
int main()
{
//Declarăm și citim
int n, raspuns = 1;
cin >> n;
//Înmulțim raspuns cu 2 de n ori pentru a calcula 2^n. Pentru n = 0, raspuns = 1
for(int i = 1; i <= n; i++) {
raspuns = raspuns * 2;
}
//Afișăm răspunsul
cout << raspuns;
return 0;
}
Metoda 2 (eficientă): biți
Limbajul C++ are câțiva operatori speciali, cu ajutorul cărora putem să
manipulăm numere după biții acestora. Ne vom referi la operatorul de shift
are de biți spre stânga, <<
.
Rezultatul operației a << b
este numărul format prin shiftarea biților lui
a
cu b
poziții spre stânga. Din punct de vedere matematic, îl înmulțim pe
a
cu 2
de b
ori (pentru a muta la stânga cu b
poziții), așadar a << b
este echivalent cu a * 2^b
, unde x^y
reprezintă x
la puterea y
.
Operația a << b
se execută instant, în O(1)
, așadar, dacă apelăm 1 << n
,
o să obținem instant 1 * 2^n = 2^n
, numărul pe care noi voiam să îl aflăm.
Așadar, codul arată cam așa:
#include <iostream>
using namespace std;
int main()
{
//Declarăm și citim
int n, raspuns = 1;
cin >> n;
//Calculăm răspunsul, folosind proprietatea menționată anterior (1 << n = 2^n).
raspuns = (1 << n);
//Afișăm răspunsul
cout << raspuns;
return 0;
}
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0