Cod sursa(job #1134077)

Utilizator smaraldaSmaranda Dinu smaralda Data 5 martie 2014 22:59:38
Problema Cifra Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#include<string.h>

const int PMAX = 100;

int uc[PMAX + 10];
char n[PMAX + 10];

int lgPow (int n, int p) {
    if(p == 0) return 1;
    if(p % 2 == 1) return (n * lgPow(n, p - 1)) % 10;
    int half = lgPow(n, p / 2);
    return (half * half) % 10;
}

int main() {
    FILE *in = fopen("cifra.in","r");
    FILE *out = fopen("cifra.out","w");

    int len, i, tc, u2c;

uc[0] = 0;
    for(i = 1; i <= PMAX; ++ i)
        uc[i] = (uc[i - 1] + lgPow(i, i)) % 10;
   
    fscanf(in, "%d\n",&tc);
    while(tc) {
        -- tc;
        fgets(n, PMAX, in);
        len = strlen(n);
        --len;

        if(len > 1)
            u2c = (n[len - 2] - '0') * 10 + n[len - 1] - '0';
        else
            u2c = n[len - 1] - '0';
    
        fprintf(out, "%d\n",uc[u2c]);
    }
    return 0;
}