Cod sursa(job #1903800)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 5 martie 2017 12:54:01
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <cstdio>

using namespace std;
char n[110];
int nr[110];
int a[10][2]={{0,0},{1,1},{4,6},{3,7},{6,6},{5,5},{6,6},{7,3},{4,6},{1,1}};

int main()
{
    FILE *fin=fopen ("cifra.in","r");
    FILE *fout=fopen ("cifra.out","w");
    int t,i,num,cf,sum,sc;
    fscanf (fin,"%d\n",&t);
    for (;t>0;t--){
        //if (t==1)
          //  printf ("a");
        fgets (n,101,fin);
        nr[0]=0;
        for (i=0;n[i]!='\n';i++)
            nr[++nr[0]]=n[i]-'0';
        if (nr[0]>=2)
            num=nr[nr[0]-1]*10+nr[nr[0]];
        else num=nr[nr[0]];
        if (nr[0]<3)
            cf=0;
        else cf=nr[nr[0]-2];
        sum=sc=0;
        for (i=1;i<=100;i++){
            if (i%10!=2 && i%10!=3 && i%10!=7 && i%10!=8)
                sum=sum+a[i%10][1];
            else if (i%10==2 || i%10==8){
                if (i%4==2)
                    sum+=a[i%10][0];
                else sum+=a[i%10][1];
            }
            else if (i%10==3 || i%10==7){
                if (i%4==1)
                    sum+=a[i%10][0];
                else sum+=a[i%10][1];
            }
            sum%=10;
            if (i==num)
                sc=sum;
        }
        sum=((sum*cf)%10+sc)%10;
        fprintf (fout,"%d\n",sum);
    }
    return 0;
}