Cod sursa(job #3230449)
Utilizator | Data | 21 mai 2024 17:51:31 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | c-32 | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <stdio.h>
#include <stdlib.h>
int exponent(int N, int P)
{
if(P == 0){
return 1;
}
else if(P % 2 == 0){
return exponent(N * N, P / 2);
}
else if(P % 2 != 0){
return N * exponent(N * N, (P - 1) / 2);
}
return 1;
}
int main(void)
{
FILE *input = fopen("igput.in", "r");
FILE *output = fopen("igput.out", "w");
int N, P;
fscanf(input, "%d", &N);
fscanf(input, "%d", &P);
fprintf(output, "%d", exponent(N, P));
fclose(input);
fclose(output);
return 0;
}