Pagini recente » Cod sursa (job #3216218) | Cod sursa (job #571329) | Cod sursa (job #1733689) | Cod sursa (job #632789) | Cod sursa (job #52671)
Cod sursa(job #52671)
#include<stdio.h>
#include<string.h>
int T;
FILE *in = fopen ("cifra.in", "rt");
FILE *out = fopen ("cifra.out", "wt");
int citire ()
{
char x[101];
fgets(x,101,in);
int k=strlen(x)-1;
if(k>=3)
return((x[k-3]-48)*100+(x[k-2]-48)*10+x[k-1]-48);
if(k>=2)
return((x[k-2]-48)*10+x[k-1]-48);
else
return x[0]-48;
}
void calc_cifre()
{
int y=citire();
int k=y/10;
k*=47;
k=k%10;
int x=y%10;
for(int i=1;i<=y%10;i++)
{
if(i==1)
k++;
if(i==2)
{
if((y-x+i)%4==0)
k+=6;
if((y-x+i)%4==2)
k+=4;
}
if(i==3)
{
if((y-x+i)%4==1)
k+=3;
if((y-x+i)%4==3)
k+=7;
}
if(i==4)
k+=6;
if(i==5)
k+=5;
if(i==6)
k+=6;
if(i==7)
{
if((y-x+i)%4==1)
k+=7;
if((y-x+i)%4==3)
k+=3;
}
if(i==8)
{
if((y-x+i)%4==2)
k+=4;
if((y-x+i)%4==0)
k+=6;
}
if(i==9)
k+=9;
}
k=k%10;
fprintf(out,"%d\n",k);
}
void rezolvare ()
{
fscanf(in, "%d", &T);
fgetc(in);
for(int j=1;j<=T;j++)
{
calc_cifre();
}
}
int main()
{
rezolvare();
fclose(in);
fclose(out);
return 0;
}