Cod sursa(job #1810191)

Utilizator DanFodorFODOR Dan Horatiu DanFodor Data 19 noiembrie 2016 18:41:57
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    ifstream cin ("cifra.in");
    ofstream cout ("cifra.out");

    int i, p, k;
    int last[10];
    last[0] = 0;
    for (i = 1; i < 10; ++i)
    {
        p = i;
        k = 1;
        while (k < i)
        {
            ++k;
            p = p*i %10;
        }

        last[i] = p;
    }

    int lastDigit[100], lDigit;
    lastDigit[0] = 0;
    for (i = 1; i < 100; ++i)
    {
        int lDigit = 0;
        for (int j = 1; j <= i; ++j)
        {
            lDigit += last[j%10];
            lDigit = lDigit % 10;

        }
        lastDigit[i] = lDigit;
    }

    int n, len, chars;
    string str;


    cin >> n;
    for (i = 0; i < n; ++i)
    {
        cin >> str;
        len = str.size();
        chars = len > 2 ? 2 : len;

        str = str.substr(len - chars, chars);
        if (chars > 1)
            k = 10 * ((int)(str[0] - '0')) + ((int)(str[1] - '0'));
        else
            k = ((int)(str[0] - '0'));

        cout << lastDigit[k] << '\n';
    }

    return 0;
}