Cod sursa(job #2612290)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 8 mai 2020 19:33:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>

unsigned long long put (unsigned long long n, unsigned long long k) {
    switch (n) {
    case 0ull:
        return 1ull;
        break;
    case 1ull:
        return n;
        break;
    default:
        if (k&1ull)
            return n*put(n*n, k>>1ull);
        else
            return put(n*n, k>>1ull);
        break;
    }
}

int main (void) {
    unsigned long long n, k;
    fscanf(fopen("lgput.in", "r"), "%llu%llu", &n, &k);
    fprintf(fopen("lgput.out", "w"), "%llu", put(n, k));
    return 0;
}