Pagini recente » Cod sursa (job #139621) | Cod sursa (job #1619104) | Cod sursa (job #1996153) | Istoria paginii utilizator/artenerobert | Cod sursa (job #2340179)
#include <fstream>
#include <vector>
using namespace std;
int main()
{
int T, a, b;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
fin >> T;
vector<int> lastDigits(11, 1);
lastDigits[0] = 0;
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
lastDigits[i] = lastDigits[i]*i;
if (lastDigits[i] > 9)
lastDigits[i] %= 10;
}
for (int i = 1; i <= T; i++)
{
string n;
fin >> n;
string k = "0";
k.resize(n.size());
int sum = 0;
do
{
int digit = k.size()-1;
while(k[digit] == '9')
digit--;
k[digit]++;
sum += lastDigits[(int(k[k.size()-1])-48)];
if (sum > 9)
sum %= 10;
}
while (k != n);
fout << sum << endl;
}
fin.close();
fout.close();
return 0;
}