Cod sursa(job #1268325)

Utilizator fluture.godlikeGafton Mihnea Alexandru fluture.godlike Data 20 noiembrie 2014 20:40:57
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>
FILE *fin, *fout;
int a, b;
int power(int x, int y)
{
         if(y < 0) return power(1/x, 0-y);
         if(y == 0) return 1;
         if(y == 1) return x;
         if(y%2 == 0) return power(x*x, y/2);
         return x*power(x*x, (y-1)/2);
}
int main()
{
    fin = fopen("lgput.in", "r");
    fout = fopen("lgput.out", "w");
    fscanf(fin, "%d%d", &a, &b);
    fprintf(fout, "%d", power(a, b));
    fclose(fin);
    fclose(fout);
    return 0;
}