Cod sursa(job #1796273)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 3 noiembrie 2016 11:48:44
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.69 kb
#include<fstream>
#include<cstring>
using namespace std;

 int ucnxn[10],w[10],u2[10],w2[10];
 short int rest[10][6],perioada[10];

int main()
{
    ifstream f("cifra.in");
    ofstream g("cifra.out");

int ii,n,i,j,a,b,S,T=0,y,x;;;
char text[103];
int tr=0;

//
//for(ii=0;ii<=9;++ii)
//{
//    a=ii;
//    b=ii;
//    j=1;
//    rest[ii][j]=b;
//    do
//    {
//        ++j;
//        b=(b*a)%10;
//        rest[ii][j]=b;
//    }while(a!=b);
//    rest[ii][0]=rest[ii][j-1];
//    perioada[ii]=j-1;;
//}
//
////afisam rezultate
//for(ii=0;ii<=9;++ii)
//{
//    g<<ii<<" perioada="<<perioada[ii]<<'\n';
//    for(j=0;j<perioada[ii];++j)
//        g<<" *"<<rest[ii][j]<<'\n';
//}



//realizam vectorul pt ultima cifra nxn, n<=9
ucnxn[0]=0;
for(ii=1;ii<=9;++ii)
{
    a=ii;
    b=1;
    for(j=1;j<=ii;++j)
        b=(b*a)%10;
    ucnxn[ii]=b;
}

S=0;
for(ii=0;ii<=9;++ii)
{
    S=S+ucnxn[ii];
    w[ii]=(S)%10;
    //g<<ii<<" ucnxn[ii]="<<ucnxn[ii]<<" "<<w[ii]<<'\n';
    u2[ii]=ucnxn[ii];
}
u2[2]=6;u2[3]=3;u2[7]=7;u2[8]=4;
S=0;
for(ii=0;ii<=9;++ii)
{
    S=S+u2[ii];
    w2[ii]=(S)%10;
    //g<<ii<<" u2[ii]="<<u2[ii]<<" "<<w2[ii]<<'\n';
}

S=S%10;
//g<<S<<'\n';
T=S*10;
//g<<T<<'\n';

f>>n;
//citim numerele
for(ii=1;ii<=n;++ii)
{
    f>>text;
        //facem impartirile
    y=strlen(text);

    if(y>=2)
    {
        x=(text[y-2]-'0')*10+(text[y-1]-'0');
    }
    else
    {
        x=(text[y-1]-'0');
    }
    //g<<"x="<<x<<'\n';


    a=((x/10)*S)%10;
     //g<<"a="<<a<<'\n';
    b=x%10;
if(a%2==0)
    a=(a+w[b])%10;
else
    a=(a+w2[b])%10;

    g<<a<<'\n';
    //g<<'\n';*/    /*

}


    return 0;
}