Cod sursa(job #57442)

Utilizator maria_bobesMaria Bobes maria_bobes Data 2 mai 2007 07:30:12
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
FILE *f=fopen("cifra.in","r"),*g=fopen("cifra.out","w");
char c[30000];
void citire(int &a)
{
 int i=1,p;
 c[0]='0';
 fscanf(f,"%c",&c[1]);
 while(c[i]!='\n')
  {
  fscanf(f,"%c",&c[++i]);
  fflush(f);  }
 p=i-1;
 c[p]=c[p]-48;
 c[p-1]=c[p-1]-48;
 a=c[p-1]*10+c[p];

}

void cifra(int a)
{
 int s1=0,s=0,k,l;
 if(a>=10)
 {
  s1=a/10;
  s1=s1*7;
  if (s1>9)
   s=s1%10;
 }
 int i=a%10;
 for(int j=1;j<=i;j++)
 {
  if(j==0||j==1||j==5||j==6)
   {
    s=s+j;
   }
  else
   if(j==4||j==9)
    {
     k=s1+j;
     k=k%2;
     if(k==0)
       s=s+j*j;
     else
      s=s+j;
    }
   else
   {
    k=s1+j;
    k=k%4;
    if(k==0)   k=4;
    else
    {
     int m=1;
     for(l=1;l<=k;l++)
      {m=m*j;
       m=m%10;  }
     s=s+m;
     }
   }
   s=s%10;
 }
 fprintf(g,"%d\n",s);

}


int main()
{
 int n,a=0;
 fscanf(f,"%d",&n);
 fscanf(f,"\n");

 for(int i=1;i<=n;i++)
  {
   citire(a);
   cifra(a);
  }

 return 0;

}