Pagini recente » Cod sursa (job #3135100) | Cod sursa (job #2139452) | Cod sursa (job #1455290) | Cod sursa (job #980662) | Cod sursa (job #2351622)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string n;
int last[10][2];
int results[100];
int solve(unsigned long long i);
void init()
{
last[1][0] = 1; last[1][1] = 1;
last[2][0] = 4; last[2][1] = 6;
last[3][0] = 7; last[3][1] = 3;
last[4][0] = 6; last[4][1] = 6;
last[5][0] = 5; last[5][1] = 5;
last[6][0] = 6; last[6][1] = 6;
last[7][0] = 3; last[7][1] = 7;
last[8][0] = 6; last[8][1] = 4;
last[9][0] = 9; last[9][1] = 9;
for(int i = 1; i < 100; ++i)
{
results[i] = solve(i);
}
}
int transform()
{
int nval = 1;
if(n.length() < 3)
nval = stoi(n);
else
nval = int(n[n.length() - 2] - '0') * 10+ int(n[n.length() - 1] - '0');
return nval;
}
int howMany(int i, int z)
{
int nval = transform();
return (nval - 10 * z - i) / 20 + (i + 10 * z <= nval);
}
int solve()
{
int result = 0;
for(int i = 1; i <= 9; ++i)
{
result += howMany(i, 0) * last[i][0] + howMany(i, 1) * last[i][1];
result %= 10;
}
return result;
}
int solve(unsigned long long i)
{
n = to_string(i);
return solve();
}
int main()
{
freopen("cifra.in", "r", stdin);
freopen("cifra.out", "w", stdout);
int t;
cin >> t;
init();
for(int i = 0; i < t; ++i)
{
cin >> n;
cout << results[transform()] << '\n';
}
return 0;
}