Pagini recente » Borderou de evaluare (job #1555581) | Cod sursa (job #545962) | Borderou de evaluare (job #3132617) | Monitorul de evaluare | Cod sursa (job #204376)
Cod sursa(job #204376)
#include <stdio.h>
#include <string.h>
int T, N, ans, x, lg, nr, i;
int cate[32];
char sir[128];
int main()
{
freopen("cifra.in", "r", stdin);
freopen("cifra.out", "w", stdout);
for (N = 1; N <= 20; ++N)
{
for (i = 1, ans = 0; i <= N; ++i)
{
x = i % 10;
if (x == 1)
ans += 1;
else if (x == 2)
{
if (i % 4 == 1)
ans += 2;
else if (i % 4 == 2)
ans += 4;
else if (i % 4 == 3)
ans += 8;
else
ans += 6;
}
else if (x == 3)
{
if (i % 4 == 1)
ans += 3;
else if (i % 4 == 2)
ans += 9;
else if (i % 4 == 3)
ans += 7;
else
ans += 1;
}
else if (x == 4)
{
if (i % 2 == 1)
ans += 4;
else
ans += 6;
}
else if (x == 5)
ans += 5;
else if (x == 6)
ans += 6;
else if (x == 7)
{
if (i % 4 == 1)
ans += 7;
else if (i % 4 == 2)
ans += 9;
else if (i % 4 == 3)
ans += 3;
else
ans += 1;
}
else if (x == 8)
{
if (i % 4 == 1)
ans += 8;
else if (i % 4 == 2)
ans += 4;
else if (i % 4 == 3)
ans += 2;
else
ans += 6;
}
else if (x == 9)
{
if (i % 2 == 1)
ans += 9;
else
ans += 1;
}
ans %= 10;
}
cate[N] = ans;
}
scanf("%d\n", &T);
for (; T--; )
{
scanf("%s\n", &sir);
lg = strlen(sir);
if (lg < 2)
ans = cate[sir[lg-1] - '0'];
else
{
nr = (sir[lg-2]-'0')*10+sir[lg-1]-'0';
if (nr / 20 == 1)
ans = 4;
else if (nr / 20 == 2)
ans = 8;
else if (nr / 20 == 3)
ans = 2;
else if (nr / 20 == 4)
ans = 6;
else
ans = 0;
ans += cate[nr % 20];
ans %= 10;
}
printf("%d\n", ans);
}
return 0;
}