Cod sursa(job #2351138)

Utilizator florinel2102florin pricopie florinel2102 Data 21 februarie 2019 23:55:55
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

#include <algorithm>



using namespace std;



ifstream cin("cifra.in");

ofstream cout("cifra.out");



int pw(int b, int e)
{

    int ans(1);

    if (e == 0)

        e = 4;

    while (e)
    {

        ans = ans * b % 10;

        e--;

    }

    return ans;

}



int main()

{

    int q;

    string n;

    cin >> q;

    while (q--)
    {

        cin >> n;

        int ans(0);

        reverse(n.begin(), n.end());

        if (n.size() >= 2)
        {

            for (int j = 1; j <= n[0] - '0'; ++j)  ///analizam ultima grupa
            {

                ans += pw(j % 10, (j + (n[1] - '0') % 2 * 2) % 4);

                if (ans >= 10)

                    ans -= 10;

            }

        }

        else
        {

            for (int j = 1; j <= n[0] - '0'; ++j)
            {

                ans += pw(j % 10, j % 4);

                if (ans >= 10)

                    ans -= 10;

            }

        }

        if (n.size() >= 2)

            cout << (ans + 7 * (n[1] - '0')) % 10 << '\n';

        else

            cout << ans << '\n';

    }

    return 0;

}