Pagini recente » Cod sursa (job #3248492) | Cod sursa (job #1677097) | Cod sursa (job #1006138) | Cod sursa (job #1224227) | Cod sursa (job #2613915)
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// M[j % 10][(j - 1) % M[j].size()] == ultima cifra a lui j^j, pentru 1 <= j <= 100
vector<vector<int>> M = {
{0},
{1},
{2, 4, 8, 6},
{3, 9, 7, 1},
{4, 6},
{5},
{6},
{7, 9, 3, 1},
{8, 4, 2, 6},
{9, 1}
};
int main() {
ifstream fin("cifra.in");
ofstream fout("cifra.out");
unsigned T;
fin >> T;
for (unsigned i = 1; i <= T; i++) {
string N;
fin >> N;
unsigned n;
if (N.length() == 1)
n = stoi(N);
else
n = stoi(N.substr(N.length() - 2));
unsigned result = 0;
for (unsigned j = 1; j <= n; j++)
result = (result + M[j % 10][(j - 1) % M[j % 10].size()]) % 10;
fout << result << endl;
}
return 0;
}