Cod sursa(job #1854781)

Utilizator sli1987Marin Cristian sli1987 Data 23 ianuarie 2017 11:27:09
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

using namespace std;

int main()
{
    ifstream in ("cifra.in");
    short T;
    in >> T;
    string temp;
    int numE, sum;
    ofstream out ("cifra.out");
    const short sq[4] = {4, 6, 6, 4};
    const short cu[5] = {1, 7, 5, 3, 9};
    for (int i = 0; i < T; i++)
    {
        sum = 0;
        in >> temp;
        if ((int)temp.length() - 2 >= 0)
            temp = temp.substr(temp.length() - 2);
        numE = atoi(temp.c_str());
        for (int j = 1; j <= numE % 10; j++)
            switch ((numE - numE % 10 + j) % 4)
            {
                case 0: sum += 6; break;
                case 1: sum += j; break;
                case 2: sum += sq[j / 2 - 1]; break;
                case 3: sum += cu[(j - 1) / 2]; break;
            }
        if (numE >= 10)
            out << (sum + 7 * (numE / 10)) % 10 << endl;
        else
            out << sum % 10 << endl;
    }
    in.close();
    out.close();
    return 0;
}