Cod sursa(job #1855949)
Utilizator | Beschieru Marius Skripex | Data | 24 ianuarie 2017 13:26:51 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <stdlib.h>
#include <math.h>
using namespace std;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
long long rez=1;
long long RidicareLaPutere (long long x,long long y)
{
if (y==0)
{
rez=1;
return rez;
}
if (y%2==0)
{
rez= abs (RidicareLaPutere (x,y/2));
rez=rez*rez;
}
else
{
rez=abs (RidicareLaPutere (x,y/2));
rez=rez*rez*x;
}
return rez;
}
int main ()
{
int x,y;
fin>>x>>y;
fout<<RidicareLaPutere (x,y);
return 0;
}