Pagini recente » Cod sursa (job #1768743) | Cod sursa (job #3145397) | Cod sursa (job #2528843) | Cod sursa (job #2597203) | Cod sursa (job #1443403)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
char sir[1000];
int a[1000] , b[1000] , mat[10][5] , n;
int rest(){
int i , t = 0;
for (i = a[0]; i > 0; i--)
t = (t * 10 + a[i]) % 20;
return t;
}
void impart(){
int i ,t = 0;
for (i = a[0]; i > 0; i--, t %= 20)
a[i] = (t = t * 10 + a[i]) / 20;
for (; a[0] > 1 && !a[a[0]]; a[0]--);
}
void solve(){
int r , i , sum = 0;
r = rest();
for( i = 1 ; i <= r ; ++i){
sum += mat[i % 10][i % 4];
}
impart();
g<<(a[1] * 4 + sum) % 10 << '\n';
}
int main()
{
int j;
f >> n;
mat[1][0]=1,mat[1][1]=1,mat[1][2]=1,mat[1][3]=1;
mat[2][0]=6,mat[2][1]=2,mat[2][2]=4,mat[2][3]=8;
mat[3][0]=1,mat[3][1]=3,mat[3][2]=9,mat[3][3]=7;
mat[4][0]=6,mat[4][1]=4,mat[4][2]=6,mat[4][3]=4;
mat[5][0]=5,mat[5][1]=5,mat[5][2]=5,mat[5][3]=5;
mat[6][0]=6,mat[6][1]=6,mat[6][2]=6,mat[6][3]=6;
mat[7][0]=1,mat[7][1]=7,mat[7][2]=9,mat[7][3]=3;
mat[8][0]=6,mat[8][1]=8,mat[8][2]=4,mat[8][3]=2;
mat[9][0]=1,mat[9][1]=9,mat[9][2]=1,mat[9][3]=9;
f.get();
for(int i = 1; i <= n ; ++i){
f.getline(sir,500);
a[0]=strlen(sir);
for(j = a[0] - 1; j >= 0 ; --j)
{
a[a[0] - j] = sir[j] - '0';
}
solve();
}
return 0;
}