Cod sursa(job #1106967)

Utilizator anaid96Nasue Diana anaid96 Data 13 februarie 2014 14:50:54
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>

using namespace std;

FILE *in,*out;

//functii
int calc(int nr,int putere);

//variabile
int n,p;

int main(void)
{
	in=fopen("lgput.in","rt");
	out=fopen("lgput.out","wt");
	
	fscanf(in,"%d%d",&n,&p);
	fprintf(out,"%d",calc(n,p));
	fclose(in);
	fclose(out);
	return 0;
}	

int calc(int numar,int putere)
{
	if(putere==0)
		return 1;
	if(putere==1)
		return numar;		
	if(putere%2)
		return numar * calc(numar*numar, (putere-1)/2);
	else
		return calc(numar*numar,putere/2);
}