Cod sursa(job #1769831)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 3 octombrie 2016 11:30:56
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <stdio.h>
int v[4][10];
void initial(){
    v[0][0]=v[1][0]=v[2][0]=v[3][0]=0;
    v[0][1]=v[1][1]=v[2][1]=v[3][1]=1;
    v[0][2]=6;
    v[1][2]=2;
    v[2][2]=4;
    v[3][2]=8;
    v[0][3]=1;
    v[1][3]=3;
    v[2][3]=9;
    v[3][3]=7;
    v[0][4]=v[2][4]=6;
    v[1][4]=v[3][4]=4;
    v[0][5]=v[1][5]=v[2][5]=v[3][5]=5;
    v[0][6]=v[1][6]=v[2][6]=v[3][6]=6;
    v[0][7]=1;
    v[1][7]=7;
    v[2][7]=9;
    v[3][7]=3;
    v[0][8]=6;
    v[1][8]=8;
    v[2][8]=4;
    v[3][8]=2;
    v[0][9]=v[2][9]=1;
    v[1][9]=v[3][9]=9;
}
int main(){
    FILE *fin,*fout;
    fin=fopen("cifra.in","r");
    fout=fopen("cifra.out","w");
    int i,j,t,s,rest,ult,penult,exp;
    char ch;
    initial();
    fscanf(fin,"%d%c",&t,&ch);
    for(i=1;i<=t;i++){
        ult=0;
        penult=0;
        ch=fgetc(fin);
        while(ch>='0'&&ch<='9'){
            penult=ult;
            ult=ch-'0';
            ch=fgetc(fin);
        }
        s=0;
        rest=penult*10+ult;
        exp=(penult*10+ult)%4;
        for(j=rest;j>=1;j--){
            s=(s+v[exp][j%10])%10;
            exp=(exp+3)%4;
        }
        fprintf(fout,"%d\n",s);
    }
    fclose(fin);
    fclose(fout);
    return 0;
}