Cod sursa(job #2067795)

Utilizator alina13mAlinaaa alina13m Data 16 noiembrie 2017 20:35:25
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>

std :: ifstream cin("lgput.in");
std :: ofstream cout("lgput.out");

int N, P;

void logaritmExpo(int n, int p){

	if(p < 0){
		logaritmExpo(1 / n, -p);
	
	} else if(p == 0){
		cout << 1;
	
	} else if(p == 1){
		cout << n;
	
	} else if(p % 2 == 0){
		logaritmExpo(n * n, p/2);
	
	} else if(p % 2 == 1){
		logaritmExpo(n * n, (p - 1)/2);
	}


}

int main(){

	cin >> N >> P;
	logaritmExpo(N, P);

	return 0;
}