Pagini recente » Cod sursa (job #2233194) | Cod sursa (job #2333389) | Cod sursa (job #2539272) | Cod sursa (job #3189194) | Cod sursa (job #2613928)
#include <cstring>
#include <fstream>
#include <iostream>
#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++) {
char N[101];
fin >> N;
if (strlen(N) > 1)
if (N[strlen(N) - 2] == '0')
strcpy(N, N + strlen(N) - 1);
else
strcpy(N, N + strlen(N) - 2);
unsigned result = 0;
unsigned n = atoi(N);
for (unsigned j = 1; j <= n; j++)
result = (result + M[j % 10][(j - 1) % M[j % 10].size()]) % 10;
fout << N << ": " << result << endl;
}
return 0;
}