Pagini recente » Cod sursa (job #166578) | Cod sursa (job #691676) | Cod sursa (job #1725637) | Cod sursa (job #86936) | Cod sursa (job #361439)
Cod sursa(job #361439)
#include <cstdio>
int digit(int b, int e) {
if(e)
switch(b % 10) {
case 0: return 0;
case 1: return 1;
case 2: switch(e % 4) { case 1: return 2; case 2: return 4; case 3: return 8; case 0: return 6; }
case 3: switch(e % 4) { case 1: return 3; case 2: return 9; case 3: return 7; case 0: return 1; }
case 4: switch(e % 2) { case 1: return 4; case 0: return 6; }
case 5: return 5;
case 6: return 6;
case 7: switch(e % 4) { case 1: return 7; case 2: return 9; case 3: return 3; case 0: return 1; }
case 8: switch(e % 4) { case 1: return 8; case 2: return 4; case 3: return 2; case 0: return 6; }
case 9: switch(e % 2) { case 1: return 9; case 0: return 1; }
}
return 1;
}
int main() {
int ntests, n, s, a, b, c;
FILE *fin, *fout;
fin = fopen("cifra.in", "r");
fout = fopen("cifra.out", "w");
fscanf(fin, "%d", &ntests);
getc(fin); // get '\n'
while(ntests-- > 0) {
for(a = b = '0'; (c = getc(fin)) != EOF && c != '\n'; a = b, b = c)
;
n = 10 * (a - '0') + (b - '0'); // consider only the last two digits
for(s = 0; n > 0; n--)
s += digit(n, n);
fprintf(fout, "%d\n", s % 10);
}
return 0;
}