Cod sursa(job #1791579)

Utilizator DenisacheDenis Ehorovici Denisache Data 29 octombrie 2016 14:57:20
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
#include <cstring>

using namespace std;

#define NMAX 1005

int pow(int base, int p) {
    int sol = 1;
    while (p) {
        if (p & 1) sol = (sol * base) % 10;
        base = (base * base) % 10;
        p >>= 1;
    }

    return sol;
}

int T, answer[105];
char s[105];

#define INT(c) (c - '0')

int main() {
    freopen("cifra.in", "r", stdin);
    freopen("cifra.out", "w", stdout);
    int S = 0, i;
    for (i = 1; i < 100; i++) {
        S += pow(i % 10, i);
        S %= 10;
        answer[i] = S;
    }

    scanf("%d\n", &T);
    int len, nr;
    while (T--) {
        gets(s);
        len = strlen(s) - 1;
        if (len > 0) {
            nr = INT(s[len - 1]) * 10 + INT(s[len]);
        }
        else {
            nr = INT(s[len]);
        }
        printf("%d\n", answer[nr]);
    }
    return 0;
}