Cod sursa(job #1660834)

Utilizator Alexghita96Ghita Alexandru Alexghita96 Data 23 martie 2016 14:35:56
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;

int T;
int N;
int trailingDigit[10][4]; // pentru fiecare ultima cifra a unui numar A, retine ultima cifra a lui A^A

// precalculeaza toate posibilitatile de ultime cifre
void computeTrailingDigits() {
    for (int i = 0; i <= 9; i++) {
        int n = i; // baza

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

// pentru fiecare N citit, afiseaza cifra ceruta
void solve(int n) {
    int sum = 0;

    for (int i = 1; i <= n; i++) {
        sum = (sum + trailingDigit[i % 10][i % 4]) % 10;
    }

    cout << sum << "\n";
}

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

    computeTrailingDigits();
    cin >> T;

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