Cod sursa(job #971184)
Utilizator | Data | 8 iulie 2013 18:19:48 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.37 kb |
#include <fstream>
double lgput(double n, int p)
{
if(p < 0) return lgput(1 / n, -p);
if(p == 1) return n;
if(p == 0) return 1;
if(p % 2 == 0) return lgput(n * n, p / 2);
return lgput(n * n, (p - 1) / 2);
}
int main(void)
{
std::ifstream in("lgput.in");
std::ofstream out("lgput.out");
int nV, nP;
in >> nV >> nP;
out << lgput(nV, nP);
return 0;
}