Mai intai trebuie sa te autentifici.
Cod sursa(job #651287)
Utilizator | Data | 20 decembrie 2011 02:02:28 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include "stdio.h"
unsigned int a,b,r;
FILE *f,*g;
void pow(unsigned int p,unsigned int x,unsigned int *rez)
{
if(p*2<=b)
{
pow(p*2,x*x,rez);
if(b>p)
{
b-=p;
*rez*=x;
}
}
else
{
*rez = x;
b-=p;
}
}
int main()
{
f = fopen("lgput.in","r");
g = fopen("lgput.out","w");
fscanf(f,"%d%d",&a,&b);
pow(1,a,&r);
fprintf(g,"%d",r);
fclose(f);
fclose(g);
return 0;
}