Cod sursa(job #392581)

Utilizator nandoLicker Nandor nando Data 7 februarie 2010 19:41:51
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <fstream>

using namespace std;

unsigned pow(int n,int k){
	unsigned tmp;
	if(k==0){
		return 1;
	}else if(k&1){
		tmp=pow(n,(k-1)>>1);
		return n*tmp*tmp;
	}else if(!(k&1)){
		tmp=pow(n,k>>1);
		return tmp*tmp;
	}
}
int main(){
	fstream fin("lgput.in",ios::in);
	fstream fout("lgput.out",ios::out);
	unsigned n,k;
	fin>>n>>k;
	fout<<pow(n,k);
	fin.close();
	fout.close();
	return 0;
}