Cod sursa(job #125737)

Utilizator cos_min_max_ionCosmin Ion cos_min_max_ion Data 20 ianuarie 2008 17:14:12
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.55 kb
#include<iostream.h>
#include<stdio.h>
int main()
{ long  n;
  int t,i,cz,cu,u;
  freopen("cifra.in","rt" ,stdin);
  freopen("cifra.out","wt" ,stdout);
  cin>>t;
  for(i=0;i<t;i++)
   { cin>>n;
     cu=n%10;
     cz=n/10;
     if (cz>9) cz-=cu;
     u=0;
     switch (cu)
     { case 0:u+=cz;//1
	      if(cz%2) u+=5;//2,3,5,7,8
	      u+=(2*cz*6)%10;//4,6
	      u+=(cz*9)%10;//9
	      break;
	case 1: u+=cz+1;//1
		if(cz%2) u+=5;//2,3,5,7,8
		u+=(2*cz*6)%10;//4,6
		u+=(cz*9)%10;//9
		break;
	case 2: u+=cz+1;//1
		if(cz%2) u+=1;//2,3,5,7,8
		   else u+=4;
		u+=(2*cz*6)%10;//4,6
		u+=(cz*9)%10;//9
		break;
	case 3: u+=cz+1;//1
		if(cz%2) u+=4;//2,3,5,7,8
		   else u+=1;
		u+=(2*cz*6)%10;//4,6
		u+=(cz*9)%10;//9
		break;
	case 4: u+=cz+1;//1
		if(cz%2) u+=4;//2,3,5,7,8
		   else u+=1;
		u+=(2*cz*6)%10+6;//4,6
		u+=(cz*9)%10;//9
		break;
	 case 5: u+=cz+1;//1
		if(cz%2) u+=9;//2,3,5,7,8
		   else u+=6;
		u+=(2*cz*6)%10+6;//4,6
		u+=(cz*9)%10;//9
		break;
	 case 6: u+=cz+1;//1
		if(cz%2) u+=9;//2,3,5,7,8
		   else u+=6;
		u+=(2*cz*6)%10+12;//4,6
		u+=(cz*9)%10;//9
		break;
	 case 7: u+=cz+1;//1
		if(cz%2) u+=6;//2,3,5,7,8
		   else u+=9;
		u+=(2*cz*6)%10+12;//4,6
		u+=(cz*9)%10;//9
		break;
	 case 8:  u+=cz+1;//1
		if(cz%2==0) //u+=0;//2,3,5,7,8
		   u+=5;
		u+=(2*cz*6)%10+12;//4,6
		u+=(cz*9)%10;//9
		break;
	  case 9 :   u+=cz+1;//1
		    if(cz%2==0) //u+=0;//2,3,5,7,8
		       u+=5;
		     u+=(2*cz*6)%10+12;//4,6
		     u+=(cz*9)%10+9;//9
		   break;
	}
	cout<<u%10<<endl;
   }
   return 0;
}