Cod sursa(job #549216)

Utilizator andreas_mihAndreas Mihaloianis andreas_mih Data 8 martie 2011 11:26:23
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.45 kb
#include<stdio.h>
#include<string.h>
using namespace std;
FILE*in=fopen("cifra.in","r");
FILE*out=fopen("cifra.out","w");
int i,q,k,z,t,u;
char v[100];
int main()
{
fscanf(in,"%d",&t);
for(i=0;i<t;i++)
{
    fscanf(in,"%s",&v);
    if(strlen(v)==1)
        u=1;
        else
            u=0;
    z=strlen(v)-1;
    k=v[strlen(v)-1]-48;
    if(k==0)
        q=0;
        else
        if(k==1)
            q=1;
            else
            if(k==9)
                q=7;
                else
                if(k==3)
                    if((strlen(v)-2+u)%2==0)
                        q=2;
                    else        //ai schimbat 0 cu 2
                        q=0;
                    else
                    if(k==4)
                        if((strlen(v)-2+u)%2==0)
                            q=8;
                        else
                            q=6;
                            else
                            if(k==2)
                                if((strlen(v)+u-2)%2==0)
                                    q=5;
                                else
                                    q=7;
                                    else
                                    if(k==5)
                                        if((strlen(v)-2+u)%2==0)
                                            q=3;
                                        else // ai inversat 1 cu 3
                                            q=1;
                                            else
                                            if(k==6)
                                                 if((strlen(v)-2+u)%2==0)
                                                    q=9;
                                                else
                                                    q=7;
                                                    else
                                                    if(k==7)
                                                        if((strlen(v)-2+u)%2==0)
                                                            q=4;
                                                        else
                                                            q=2;
                                                            else
                                                            if(k==8)
                                                                q=8;

fprintf(out,"%d\n",(7*z+q)%10);
}

fclose(in);
fclose(out);
return 0;
}