Cod sursa(job #2340179)

Utilizator Dan201399Frimu Daniel Dan201399 Data 9 februarie 2019 21:32:03
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#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;
}