Pagini recente » Cod sursa (job #1020987) | Cod sursa (job #2986478) | Cod sursa (job #1529104) | Cod sursa (job #542410) | Cod sursa (job #2650229)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f ( "cifra.in" );
ofstream g ( "cifra.out" );
const int N = 101;
char S[N];
int v[N], Uc[N];
int rest ( int a[], int x ){
int i, nr = a[a[0]];
for ( i = a[0] - 1; i >= 1; i-- ){
nr = nr * 10 + a[i];
if ( nr >= x )
nr = nr % 20;
}
return nr;
}
int main()
{ int uc, n, i, T, test, j, c, r;
f >> T;
for ( i = 1; i <= 20; i++ ){
uc = 1;
int lim = i % 4;
if ( lim == 0 )
lim = 4;
for ( j = 1; j <= lim; j++ )
uc = uc * i;
Uc[i] = ( Uc[i - 1] + uc ) % 10;
}
for ( test = 1; test <= T; test ++ ){
f >> ( S + 1 );
n = strlen ( S + 1 );
c = 0;
if ( n > 1 )
c = ( S[n - 1] - '0' ) * 7;
for ( i = 1; S[i] != 0 ; i++ )
v[n - i + 1] = S[i] - '0';
v[0] = n;
r = rest ( v, 20 );
g << ( c + Uc[r] - Uc[( r / 10 ) * 10] ) % 10 << '\n';
}
return 0;
}