Cod sursa(job #2755866)

Utilizator RedPipperNastasa Stefan-Alexandru RedPipper Data 28 mai 2021 16:50:52
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.35 kb
#include <iostream>

using namespace std;

int n, p;

int exp(int x, int n){

    if(n < 0)return exp(1/x, -n);
    if(n==0)return 1;
    if(n==1)return x;
    if(n%2==0)return exp(x*x, n/2);
    if(n%2==1)return x * exp(x*x, (n-1)/2); 

    return -1;
}

int main(){

    //ridicare in timp logaritmic
    cin>>n>>p;
    cout<<exp(n,p);


    return 0;
}