Pagini recente » Cod sursa (job #648524) | Cod sursa (job #355264) | Cod sursa (job #2587355) | Cod sursa (job #1515216) | Cod sursa (job #1660861)
#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";
}
}