Cod sursa(job #1106967)
Utilizator | Nasue 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);
}