Cod sursa(job #594989)
#include <stdio.h>
#include <string.h>
int Cifra(int i)
{
int c = 1, j;
if(i > 1)
{
for(j = 0; j < i; j++)
c = (c * i % 10) % 10;
c = (c + Cifra(i - 1)) % 10;
}
return c;
}
int main()
{
FILE *fin, *fout;
int i, n = 100, T, lungimeNumar, index;
int ultimaCifra[100] = {0};
char numar[101];
for(i = 1; i < n; i++)
{
//printf("%3d - %d\n", i, Cifra(i));
ultimaCifra[i] = Cifra(i);
}
fin = fopen("cifra.in", "r");
fout = fopen("cifra.out", "w");
fscanf(fin, "%d", &T);
for(i = 0; i < T; i++)
{
fscanf(fin, "%s", numar);
lungimeNumar = strlen(numar);
if(lungimeNumar == 1)
index = numar[0] - '0';
else
index = 10 * (numar[lungimeNumar - 2] - '0')+
(numar[lungimeNumar - 1] - '0');
fprintf(fout, "%d\n", ultimaCifra[index]);
}
fclose(fin);
fclose(fout);
return 0;
}