Cod sursa(job #1042789)

Utilizator sirbu11Sirbu Claudiu Cosmin sirbu11 Data 27 noiembrie 2013 18:06:33
Problema Cifra Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.87 kb
#include<stdio.h>
#include<string.h>


int main()
{
 int n,p,t,i,x,j,y,nr;
 char s[102];
 
 FILE *f=fopen("cifra.in","r");
 FILE *g=fopen("cifra.out","w");

 fscanf(f,"%d",&t);
 for(i=1;i<=t;i++)
 {
 	 //fgets(s,102,f);
	 //fread(s,102,sizeof(char),f);
	 fscanf(f,"%s",&s);
	 p=0; 
	 n=strlen(s);
	 y=s[n-1]-'0';
	 x=s[n-2]-'0';
	 nr=x*10+y;
     
	 if(y==0)
		 fprintf(g,"7\n");
	 else
	 if(strcmp(s,"1")==0)
		 fprintf(g,"1\n");
	 else
	 if(strcmp(s,"2")==0)
		 fprintf(g,"5\n");
	 else
	 if(strcmp(s,"3")==0)
		 fprintf(g,"2\n");
	 else
	 if(strcmp(s,"4")==0)
		 fprintf(g,"8\n");
	 else
	 if(strcmp(s,"5")==0)
		 fprintf(g,"3\n");
	 else
	 if(strcmp(s,"6")==0)
		 fprintf(g,"9\n");
	 else
	 if(strcmp(s,"7")==0)
		 fprintf(g,"2\n");
	 else
	 if(strcmp(s,"8")==0)
		 fprintf(g,"8\n");
	 else
	 if(strcmp(s,"9")==0)
		 fprintf(g,"7\n");
	 else
		{
			for(j=1;j<=y;j++)
				{if(j==1)
					p=p+1;
			     if(j==2)
				  {if(nr%4==0)
				    p=p+6;
				   if(nr%4==1)
					p=p+2;
				   if(nr%4==2)
					p=p+4;
				   if(nr%4==3)
					p=p+8;
				  }
				 if(j==3)
                  {if(nr%4==0)
				    p=p+1;
				   if(nr%4==1)
					p=p+3;
				   if(nr%4==2)
					p=p+9;
				   if(nr%4==3)
					p=p+7;
				  }
				 if(j==4)
				  {if(j%2==0)
				    p=p+6;
				  else
                    p=p+4;
				  }
				 if(j==5)
					p=p+5;
				 if(j==6)
					p=p+6;
				 if(j==7)
                  {if(nr%4==0)
				    p=p+1;
				   if(nr%4==1)
					p=p+7;
				   if(nr%4==2)
					p=p+9;
				   if(nr%4==3)
					p=p+3;
				  }
				 if(j==8)
				  {if(nr%4==0)
				    p=p+6;
				   if(nr%4==1)
					p=p+8;
				   if(nr%4==2)
					p=p+4;
				   if(nr%4==3)
					p=p+2;
				  }
				 if(j==9)
				  {if(nr%2==0)
				    p=p+1;
				    else
					p=p+9;
				  }
			  }

		fprintf(g,"%d\n",(int)p%10);
	   }
	
 }
}