Cod sursa(job #445989)

Utilizator om6gaLungu Adrian om6ga Data 24 aprilie 2010 17:45:49
Problema Cifra Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 2.06 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>




int main()
{
    int n,i,j;
    int c[10][10];
    int cont[10];
    for (i=0;i<10;i++)
    {
        cont[i]=0;    
        for (j=0;j<10;j++)
            c[i][j]=0;
    }
    cont[0]=1;
    
    for (i=1;i<10;i++)
    {
        int r=1;
        int gata=0;
        while(!gata)
        {
             r*=i;
             r%=10;            
             for (j=0;j<=cont[i];j++)
                 if(r==c[i][j])
                 {
                      gata=1;              
                      break;         
                 }
             if (gata==1)
                break;
             c[i][cont[i]]=r;
             cont[i]++;                     
        }    
    }
    
    int aux[4];
    for (i=1;i<10;i++)
    {
        for (j=0;j<cont[i]-1;j++)
            aux[j+1]=c[i][j];
        aux[0]=c[i][cont[i]-1];
        for (j=0;j<cont[i];j++)    
            c[i][j]=aux[j];
    }

    int rez=0,nn,p,t;
    FILE *in=fopen("cifra.in","r");
    FILE *out=fopen("cifra.out","w");
    fscanf(in,"%d",&t);
    char nr[101];
    char cc[3];
    
    
    int cifra[100];
    cifra[00]=0;
    int u;
    for (u=1;u<100;u++)
    {
        rez=0;
    for (i=1;i<=u;i++)
                  {
                      nn=i%10;
                      p=i%(cont[nn]);
                      if (nn>0)
                         rez+=c[nn][p];
                  }
                  rez%=10;
                  cifra[u]=rez;    
                  printf("cifra[%d]=%d\n\n",u,rez);      
    }
    
    while(t>0)
    {
                 fscanf(in,"%s",nr); 
                 if (strlen(nr)<=2)
                     n=atoi(nr);
                 else
                 {
                    
                     strncpy(cc,nr+strlen(nr)-2,2);
                     cc[2]='\0';
                     n=atoi(cc);
                     
                 } 
                  fprintf(out,"%d \n",cifra[n]);
                  t--;
    }
    return 0;
}