Cod sursa(job #2370930)

Utilizator alexghitaAlexandru Ghita alexghita Data 6 martie 2019 14:39:36
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

const int MAX_DIGITS = 101;
const int REPEAT = 100;

int T;
int last_digits[REPEAT];

int pow(int p) {
    int n = p == 0 ? 0 : 1;

    for (int i = 0; i < p; ++i) {
        n = (n * p) % 10;
    }
    return n;
}

void compute_last_digits() {
    for (int i = 1; i < 100; ++i) {
        last_digits[i] = (last_digits[i - 1] + pow(i % 10)) % 10;
    }
}


void solve() {
    char N[MAX_DIGITS];
    int last_two = 0;
    int N_length, last_length;

    scanf("%s", N);
    N_length = strlen(N);
    last_length = min(2, N_length);

    for (int i = last_length; i >= 1; --i) {
        last_two *= 10;
        last_two += N[N_length - i] - '0';
    }
    printf("%d\n", last_digits[last_two % REPEAT]);
}

int main() {
    freopen("cifra.in", "r", stdin);
    freopen("cifra.out", "w", stdout);

    compute_last_digits();

    scanf("%d", &T);
    for (int i = 0; i < T; ++i) {
        solve();
    }
}