Răspuns :
Tipul signed int nu poate memora numere mai mari decat cam [tex]2\times 10^9[/tex] ([tex]2^{31}[/tex]). O solutie este sa folosesti tipuri de numere intregi mai mari (long long, pana la [tex]2^{63} \approx 0.9\times 10^{19}[/tex] sau unsigned long long [tex]2^{64} \approx 1.84\times 10^{19}[/tex]).
#include <iostream>
using namespace std;
int main()
{
unsigned int a;
unsigned long long int putere=1 ;
cin>>a;
for(int i=0;i<16;i++)
putere=putere*a;
cout<< putere;
return 0;
}
Răspuns:
#include <iostream>
using namespace std;
int main()
{
long long a;
cin >> a;
a=a*a;
a=a*a;
a=a*a;
a=a*a;
cout << a;
return 0;
}
Explicație:
e încă o variantă...
se putea de folosit un for pentru acele 4 înmulţiri a=a*a, adică
for (int i=0; i < 4; ++i )
a=a*a;