Cod sursa(job #314442)

Utilizator iulia609fara nume iulia609 Data 11 mai 2009 21:08:20
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.51 kb
#include<stdio.h>
#include<string.h>
#define dim 101
#define cif 10
using namespace std;
int v[dim];
char s[cif];
int main()
{int i,t,y,x,nr;
 unsigned long long n;
 
 FILE*f=fopen("cifra.in","r");
 FILE*g=fopen("cifra.out","w");
 
 fscanf(f,"%d",&t);
 
 for(i=1;i<=101;i++)
	{x=i%10;
     v[i]=v[i-1];
	 if(x==1) v[i]+=1;
	   else if(x==0);
		 else if(x==5) v[i]+=5;
		   else if(x==6) v[i]+=6;
			 else if(x==2) {y=i%4;  
								  if(y==0) v[i]+=6;
								  else if(y==1) v[i]+=2;
								  else if(y==2) v[i]+=4;
								  else if(y==3) v[i]+=8;
								 }
				 else if(x==3) {y=i%4;  
								 if(y==0) v[i]+=1;
								  else if(y==1) v[i]+=3;
								  else if(y==2) v[i]+=9;
								  else if(y==3) v[i]+=7;
								 }
				 else if(x==4) {y=i%2;  
								 if(y==0) v[i]+=6;
								  else if(y==1) v[i]+=4;
								 }
				 else if(x==7) {y=i%4;  
								 if(y==0) v[i]+=1;
								  else if(y==1) v[i]+=7;
								  else if(y==2) v[i]+=9;
								  else if(y==3) v[i]+=3;
								 }
				 else if(x==8) {y=i%4;  
								  if(y==0) v[i]+=6;
								  else if(y==1) v[i]+=8;
								  else if(y==2) v[i]+=4;
								  else if(y==3) v[i]+=2;
								 }
				 else if(x==9) {y=i%2;  
								  if(y==0) v[i]+=1;
								  else if(y==1) v[i]+=9;
								 }
					
	 v[i]%=10;
	}
  
 for(i=1;i<=t;i++)
	{fscanf(f,"%s",s);
	 n=strlen(s);
	 if(n>1) nr=(s[n-2]-'0')*10+s[n-1]-'0';
		 else nr=s[n-1]-'0';
		 fprintf(g,"%d\n",v[nr]);
	}
 
 fclose(f);
 fclose(g);
 return 0;
 
}