Cod sursa(job #480477)
// Ultima cifra
#include <fstream>
using namespace std;
int ultima(int n) {
int u = 1;
for (int i=1; i<=n; i++) {
u *= n;
u %= 10;
}
return u;
}
int main() {
FILE* fin = fopen("cifra.in","r");
FILE* fout = fopen("cifra.out","w");
int t, u, n, len, aux;
char* buffer = new char[101];
int* vector = new int[100];
for (int i=1; i<=100; i++) {
if (i==1)
aux = ultima(i);
else
aux = ultima(i) + vector[i-2];
vector[i-1] = aux%10;
}
fscanf(fin, "%d", &t);
for (int i=0; i<t; i++) {
u = 0;
fscanf(fin, "%s", buffer);
len = strlen(buffer);
if (len > 2) {
n = atoi(&buffer[len-2]);
} else if (len==2) {
n = atoi(&buffer[0]);
} else
n = atoi(&buffer[0]);
u = vector[n-1];
if (i==0)
fprintf(fout, "%d", u);
else
fprintf(fout, "\n%d", u);
}
fclose(fin);
fclose(fout);
return 0;
}