Pagini recente » Cod sursa (job #1269332) | Cod sursa (job #3193655) | Cod sursa (job #2374941) | Cod sursa (job #1449090) | Cod sursa (job #2981553)
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
int T, gen[101];
char N[105];
void generare()
{
gen[0]=0;
for(int i=1;i<=99;++i)
{
gen[i]=gen[i-1];
switch(i%10)
{
case 0:
break;
case 1:
gen[i]=(gen[i]%10+1)%10;
break;
case 2:
if(i%4==0) gen[i]=(gen[i]+6)%10;
else if (i%4==1) gen[i]=(gen[i]+2)%10;
else if (i%4==2) gen[i]=(gen[i]+4)%10;
else if (i%3==3) gen[i]=(gen[i]+8)%10;
break;
case 3:
if(i%4==0) gen[i]=(gen[i]+1)%10;
else if(i%4==1)gen[i]=(gen[i]+3)%10;
else if(i%4==2)gen[i]=(gen[i]+9)%10;
else if(i%4==3)gen[i]=(gen[i]+7)%10;
break;
case 4:
if(i&1)gen[i]=(gen[i]+4)%10;
else gen[i]=(gen[i]+6)%10;
break;
case 5:
gen[i]=(gen[i]+5)%10;
break;
case 6:
gen[i]=(gen[i]+6)%10;
break;
case 7:
if(i%4==0)gen[i]=(gen[i]+1)%10;
else if(i%4==1)gen[i]=(gen[i]+7)%10;
else if(i%4==2)gen[i]=(gen[i]+9)%10;
else if(i%4==3)gen[i]=(gen[i]+3)%10;
break;
case 8:
if(i%4==0)gen[i]=(gen[i]+6)%10;
else if(i%4==1)gen[i]=(gen[i]+8)%10;
else if(i%4==2)gen[i]=(gen[i]+4)%10;
else if(i%4==3)gen[i]=(gen[i]+2)%10;
break;
case 9:
if(i&1)gen[i]=(gen[i]+9)%10;
else gen[i]=(gen[i]+1)%10;
break;
}
}
}
int main()
{
generare();
f>>T;
while(T--)
{
f>>N;
int lg=strlen(N), nr;
if (lg==1)
nr=N[lg-1]-'0';
else nr=(N[lg-2]-'0')*10+N[lg-1]-'0';
g<<gen[nr]<<'\n';
}
return 0;
}