Cod sursa(job #44947)

Utilizator xdanxDaN xdanx Data 31 martie 2007 20:41:26
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.51 kb
#include<stdio.h>
#include<stdlib.h>
int a[10][4];

void prnt(int n, int m)
{
     for (int i=0;i<n;++i)
        {
                      for (int j=0;j<m;++j) printf("%d ",a[i][j]);
                      printf("\n");
        }
    
}

int main()
{
    
    int i,j,n;
    //generate table with last digit
    for (i=0;i<10;i++)
    {
        /*
        if (i==0) a[i][0]=a[i][1]=a[i][2]=a[i][3]=0;
        if (i==1)  
        */
        if (i==0||i==5||i==6||i==1)   
           for (j=0;j<4;a[i][j++]=i);
           
    }
    a[2][0]=2; a[2][1]=4;a[2][2]=8;a[2][3]=6;
    a[3][0]=3; a[3][1]=9;a[3][2]=7;a[3][3]=1;
    a[4][0]=4; a[4][1]=6;a[4][2]=4;a[4][3]=6;
    a[7][0]=7; a[7][1]=9;a[7][2]=3;a[7][3]=1;
    a[8][0]=8; a[8][1]=4;a[8][2]=2;a[8][3]=6;
    a[9][0]=9; a[9][1]=1;a[9][2]=9;a[9][3]=1;
    //generated the matrix
    
    prnt(10,4);
    int t;
    FILE *in=fopen("cifra.in","r"),*out=fopen("cifra.out","w");
    fscanf(in,"%d",&t);
    int s,uc,put;
    for (int dan=1;dan<=t;++dan)
    {
        fscanf(in,"%d",&n);
        s=0;
        for (i=1;i<=n;++i) 
        {
            uc=i%10; //find the last digit of n
            put=i%4;
            --put;
            if (put==-1) put=3;// find the rest, so i can compute the power;
            s+=a[uc][put];
            if (s>=10) s%=10;
            printf("P i=%d uc=%d put=%d s=%d\n",i,uc,put,s);
        }
        fprintf(out,"%d\n",s);
    }
    
    
    
    
    
    system("pause");
    return 0;
}