Pagini recente » Cod sursa (job #439484) | Cod sursa (job #2177975) | Istoria paginii runda/corigenta | Cod sursa (job #1903825) | Cod sursa (job #487350)
Cod sursa(job #487350)
#include<cstdio>
#include<cstring>
using namespace std;
int v[]={0,1,5,2,8,3,9,2,8,7};
void div(int *A,int nr)
{
for(int i=A[0],t=0;i>=1;i--, t%=nr)
A[i]=(t=t*10+A[i])/nr;
while(A[A[0]]==0 && A[0]>1)
A[0]--;
}
int mod(int *A,int nr)
{
int t=0;
for(int i=A[0];i>=1;i--)
t=(t*10+A[i])%nr;
return t;
}
int solve(int *A,int rest)
{
return (((A[1]*7)%10)+v[rest-1])%10;
}
int main()
{
FILE *f=fopen("cifra.in","r");
FILE *g=fopen("cifra.out","w");
int t;
fscanf(f,"%i\n",&t);
char s[110];
int A[110];
for(int i=0;i<t;i++)
{
memset(A,0,sizeof(int));
fgets(s,110,f);
int crt=1;
for(int j=strlen(s)-2;j>=0;j--)
A[crt++]=s[j]-'0';
A[0]=crt-1;
int rest=mod(A,9);
div(A,9);
fprintf(g,"%i\n",solve(A,rest));
}
fclose(f);
fclose(g);
}