Pagini recente » Cod sursa (job #1995808) | Cod sursa (job #2839332) | Cod sursa (job #2703030) | Cod sursa (job #1323115) | Cod sursa (job #573104)
Cod sursa(job #573104)
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("cifra.in");
ofstream out("cifra.out");
long n;
char X[105];
short T[15][15]; // T[i][0]= cate cifre distincte sunt ... T[i][1]=cu restul 1 .. est :)
short S[300];
long i,j,act,s,nr,M;
int main()
{
in>>n;
for(i=0; i<=9; ++i)
{
act=i;
T[i][1]=act;
do{
T[i][0]++;
T[i][T[i][0]]=act;
act*=i;
act%=10;
}while(act!=T[i][1]);
}
/* for(i=1;i<=9; ++i)
{
cout<<i<<" : ";
for(j=1; j<=T[i][0]; ++j)
cout<<T[i][j]<<" ";
cout<<endl;
} */
s=0;
for(i=1; i<=200; ++i)
{
act=i%10;
if(i%T[act][0]==0)
s+=T[act][T[act][0]];
else
s+=T[act][i%T[act][0]];
s%=10;
S[i]=s;
}
for(i=1; i<=n; ++i)
{
in>>X;
//cout<<X<<endl;
M=strlen(X);
if(M>=3)
nr=M-1-2;
else
nr=M-1;
s=0;
while(nr<M)
{
s*=10;
s+=X[nr]-'0';
//cout<<nr<<" "<<s<<" "<<X[nr]<<" | ";
nr++;
}
//cout<<endl;
//cout<<s<<endl;
s%=200;
out<<S[s]<<"\n";
}
return 0;
}