Cod sursa(job #1660861)

Utilizator Alexghita96Ghita Alexandru Alexghita96 Data 23 martie 2016 15:06:14
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int T;
string N;
int result[101]; // retine toate raspunsurile pentru N <= 100; peste 100, se repeta

// precalculeaza toate posibilitatile de sume (se repeta dupa N = 100)
void computeResults() {
    int n;

    for (int i = 1; i <= 100; i++) {
        n = 1;

        for (int j = 1; j <= i; j++) {
            n = (n * (i % 10)) % 10;
        }
        result[i] = (result[i - 1] + n) % 10;
    }
}

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

    computeResults();
    cin >> T;

    for (int i = 1; i <= T; i++) {
        cin >> N;

        int index = N[N.size() - 1] - '0';
        if (N.size() > 1) {
            index = (N[N.size() - 2] - '0') * 10 + index;
        }

        cout << result[index] << "\n";
    }
}