Pagini recente » Cod sursa (job #1629758) | Cod sursa (job #634377) | Cod sursa (job #1275017) | Cod sursa (job #1992624) | Cod sursa (job #204374)
Cod sursa(job #204374)
#include <stdio.h>
#include <math.h>
unsigned long long T, N, ans, x;
unsigned long long cate[32];
int main()
{
unsigned long long i;
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("%llu", &T);
for (; T--; )
{
scanf("%llu", &N);
ans = (N / 20 * cate[N] + cate[N % 20]) % 10;
printf("%llu\n", ans);
}
return 0;
}