Pagini recente » Cod sursa (job #162463) | Istoria paginii utilizator/szasz_ | Cod sursa (job #2234482) | Cod sursa (job #1321476) | Cod sursa (job #1348268)
#include<stdio.h>
#include<stdlib.h>
char n[102],constOne[102];
int k;
int toInt(char x) {
switch(x) {
case '0': return 0; break;
case '1': return 1; break;
case '2': return 2; break;
case '3': return 3; break;
case '4': return 4; break;
case '5': return 5; break;
case '6': return 6; break;
case '7': return 7; break;
case '8': return 8; break;
case '9': return 9; break;
default: return -1;
}
}
void diff() {
int t=k-1;
if(n[k]>'0') n[k]--;
else {
n[k]='9';
while(n[t]=='0') { n[t]='9'; t--; }
n[t]--;
}
}
int lastDigit() {
int x=0;
if(strcmp(n,constOne)==0) return 1;
else {
diff();
return (lastDigit()+toInt(n[k]+1)*toInt(n[k]+1))%10;
}
}
int main() {
long long T,i,ci;
int result;
FILE *fileRead=fopen("cifra.in","r"),fileWrite=fopen("cifra.out","w");
fscanf(fileRead,"%d",&T);
for(i=1;i<=T;i++) {
fscanf(fileRead,"%s",n);
k=strlen(n)-1;
for(ci=0;ci<k;ci++) constOne[ci]='0';
constOne[k]='1';
result=lastDigit();
fprintf(fileWrite,"%d\n",result);
}
fclose(fileRead);
fclose(fileWrite);
return 0;
}