Pagini recente » Cod sursa (job #1314588) | Cod sursa (job #1244957) | Cod sursa (job #1172823) | Cod sursa (job #625724) | Cod sursa (job #114582)
Cod sursa(job #114582)
#include<stdio.h>
int v[11][11],x[10];
int intreg(char a)
{
switch (a)
{
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;
}
return 0;
}
char caracter(int a)
{
switch (a)
{
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 -1:return '-1';break;
}
return 0;
}
int main()
{
FILE *fin,*fout;
fin= fopen ("cifra.in","r");
fout= fopen ("cifra.out","w");
char a[150];
int t;
fscanf(fin,"%d",&t);
int s,n;
x[2]=4;v[2][0]=6;v[2][1]=2;v[2][2]=4;v[2][3]=8;
x[3]=4;v[3][0]=1;v[3][1]=3;v[3][2]=9;v[3][3]=7;
x[4]=2;v[4][0]=6;v[4][1]=4;
x[7]=4;v[7][0]=1;v[7][1]=7;v[7][2]=9;v[7][3]=3;
x[8]=4;v[8][0]=6;v[8][1]=8;v[8][2]=4;v[8][3]=2;
x[9]=2;v[9][0]=1;v[9][1]=9;
int m;
for (int i=1;i<=t;i++)
{
fscanf (fin,"%s",&a);
s=0;
for (int j=1;;j++) if (a[j]=='\0')
{
n=j-1;
break;
}
//s1+=intreg(a[n]);
int r=0,r1,r2;
if (n==0) r=intreg(a[n]);
else r=intreg(a[n-1])*10+intreg(a[n]);
r1=r%10;
r2=r/10;
s=(s+(r2*2*6))%10;
if (r1>=4&&r1<6) s=(s+6)%10;
if (r1>=6) s=(s+2)%10;
if (r%10) s=(s+1)%10;
if (r%20)
{
int h=r%20;
if (h==18) s=(s+1)%10;
if (h==17) s=(s+7)%10;
if (h==12) s=(s+7)%10;
if (h==11||h==10||h==9) s=(s+1)%10;
if (h==7) s=(s+4)%10;
if (h==6||h==5||h==4||h==3) s=(s+1)%10;
if (h==2) s=(s+4)%10;
if (h>=5&&h<15) s=(s+5)%10;
}
/*while (a[0]!='\0')
{
if (a[n]=='0'||a[n]=='1'||a[n]=='5'||a[n]=='6') s+=(intreg(a[n]))%10;
if (a[n]=='4'||a[n]=='9') s+=(v[intreg(a[n])][intreg(a[n])%2])%10;
if (a[n]=='2'||a[n]=='3'||a[n]=='7'||a[n]=='8')
{
int p=0;
if (n>=1) p=p+intreg(a[n-1])*10+intreg(a[n]);
if (n==0) p=intreg(a[n]);
s=(s+(v[intreg(a[n])][p%4]))%10;
}
m=n;
while (a[m]=='0')
{
if (a[m-1]>'1')
{
a[m]='9';
a[m-1]=caracter(intreg(a[m-1])-1);
}
else
{
m--;
}
}
if (m==0&&a[m]=='1')
{
a[n]='\0';
n--;
for (int h=0;h<=n;h++) a[h]='9';
}
else a[n]=caracter(intreg(a[n])-1);
}*/
fprintf (fout,"%d\n",s);
}
return 0;
}