Cod sursa(job #2331741)

Utilizator draducanuDragos Raducanu draducanu Data 29 ianuarie 2019 21:17:05
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
//
// Created by dragos on 29.01.2019.
//

#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("cifra.in");
ofstream fout("cifra.out");

int ultimaCifra(int n) {
    int last = n % 10;
    int mod = n % 4;
    int sol = 1;
    if (mod == 0) {
        mod = 4;
    }
    for (int i = 0; i < mod; i++) {
        sol *= last;
    }

    return sol % 10;
}

int n, nb;
string nbLong;

int main() {

    fin >> n;
    for (int i = 0; i < n; i++) {
        fin >> nbLong;
        if(nbLong.length() > 1) {
            nb = stoi(nbLong.substr(nbLong.length() - 2, 2));
        } else {
            nb = stoi(nbLong.substr(nbLong.length() - 1, 1));
        }

        int sol = 0;
        switch (nb / 20 % 5) {
            case 0:
                sol = 0;
                break;
            case 1:
                sol = 4;
                break;
            case 2:
                sol = 8;
                break;
            case 3:
                sol = 2;
                break;
            case 4:
                sol = 6;
                break;
        }

        for (int i = 1; i <= nb % 20; i++) {
            sol += ultimaCifra(i);
        }

        fout << sol % 10 << "\n";
    }

    return 0;
}