Pagini recente » Cod sursa (job #2041363) | Cod sursa (job #374394) | Cod sursa (job #1670034) | Cod sursa (job #1391105) | Cod sursa (job #1660834)
#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);
}
}