Pagini recente » Cod sursa (job #3329552) | Cod sursa (job #6581) | Cod sursa (job #12356) | Cod sursa (job #3348282) | Cod sursa (job #3348286)
#include <stdio.h>
#define K 20
int u_cif[K+1];
int ultima_cifra_suma(int n)
{
return ((n / K) * u_cif[K] + u_cif[n%K]) % 10;
}
int main()
{
for (int i = 1; i <= K; i++)
{
int p = 1;
for (int j = 0; j < i; j++)
{
p = (p * i) % 10;
}
u_cif[i] = (u_cif[i-1] + p) % 10;
}
FILE *in = fopen("cifra.in", "r");
FILE *out = fopen("cifra.out", "w");
int t;
fscanf(in, "%d", &t);
fgetc(in);
for (int i = 0; i < t; i++)
{
char c, c1 = '0', c2 = '0';
c = fgetc(in);
while (c != '\n')
{
c1 = c2;
c2 = c;
c = fgetc(in);
}
int n = 0;
n = 10 * (c1 - '0') + (c2 - '0');
fprintf(out, "%d\n", ultima_cifra_suma(n));
}
fclose(in);
fclose(out);
return 0;
}