Cod sursa(job #114655)

Utilizator razvanelu99Razvan Andrus razvanelu99 Data 15 decembrie 2007 13:23:40
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include<stdio.h>
int intreg(char a)
{
      if (a=='0') return 0;
      if (a=='1') return 1;
      if (a=='2') return 2;
      if (a=='3') return 3;
      if (a=='4') return 4;
      if (a=='5') return 5;
      if (a=='6') return 6;
      if (a=='7') return 7;
      if (a=='8') return 8;
      if (a=='9') return 9;

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[101];
int t,i;
fscanf(fin,"%d",&t);
int s,n,k;
int m,p,r;
for (i=1;i<=t;i++)
   {
   fscanf (fin,"%s",a);
   s=0;
   for (int j=1;;j++) if (a[j]=='\0')
			{
			n=j-1;
			break;
			}
   if (n==0) r=intreg(a[n]);
   else r=intreg(a[n-1])*10+intreg(a[n]);

      for (k=1;k<=r;k++)
	 {
	 p=1;
	 for (m=1;m<=k;m++) p=(p*k)%10;
	 s=(s+p)%10;
	 }
      fprintf (fout,"%d\n",s);
   }


return 0;
}