Cod sursa(job #17254)

Utilizator maria_bobesMaria Bobes maria_bobes Data 15 februarie 2007 14:49:10
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<stdio.h>
#include<math.h>
FILE *f;
struct nod
{
 long info;
 nod *urm;
}  ;
int s[10000];
nod *prim,*ultim;
int main()
{
 nod *p;
 prim=NULL;
 int T;
 int i,c,a;
 f=fopen("cifra.in","r");
 fscanf(f,"%d",&T) ;
 long max=0,x;
 for(i=1;i<=T;i++)
  {
   fscanf(f,"%ld",&x);
   p=new nod;
   p->info=x;
   p->urm=NULL;
   if(prim==NULL)
    prim=ultim=p;
   else
    {
     ultim->urm=p;
     ultim=p;
    }
   if(x>max)
    max=x;
  }
   fclose(f);
   s[0]=0;
   for(i=1;i<=max;i++)
   {
    c=i%10;
    int p;
    if(c==2||c==3||c==7||c==8)
    {
     a=i%4;
     if(a==0) a=4;
     p=c;
     while(a-1)
     {
      c=p*c;
      c=c%10;
      a--;
     }
    }
    else
     if(c==4||c==9)
      {
       a=i%2;
       if(a==0) a=2;
       p=c;
       while(a-1)
       {
	c=p*c;
	c=c%10;
	a--;
       }
      }
      s[i]=s[i-1]+c;
      if(s[i]>10)
       s[i]-=10;
     }
 f=fopen("cifra.out","w");
 p=prim;
 while(p)
  {
   fprintf(f,"%d\n",s[p->info]);
   p=p->urm;
  }

 fclose(f);

 return 0;

}