Cod sursa(job #1597989)

Utilizator dumytruKana Banana dumytru Data 12 februarie 2016 15:31:11
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>

using namespace std;

long lgexp(int x, int n) {
    long result;
    if(n == 1)
        return x;
    else if(n==0)
        return 1;

    result = lgexp(x, n/2);
    result = result*result;

    if(n%2==0) {
        return result;
    }
    else {
        return x*result;
    }
}

int main()
{
    ifstream fin("lgexp.in");
    ofstream fout("lgexp.out");
    int x, n;

    fin>>x>>n;
    fin.close();

    fout<<lgexp(x, n);
    fout.close();

    return 0;
}