Cod sursa(job #3310757)

Utilizator DunareTanasescu Luca-Ioan Dunare Data 16 septembrie 2025 17:03:42
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
int ultima_cifra_n(int n);
/**
    0 -> 0
    1 -> 1
    2 -> 4 -> 8 -> 6 -> 2
    3 -> 9 -> 7 -> 1 -> 3
    4 -> 6 -> 4
    5 -> 5
    6 -> 6
    7 -> 9 -> 3 -> 1 -> 7
    8 -> 4 -> 2 -> 6 -> 8
    9 -> 1 -> 9
    Toate din 1,2 sau 4

*/
int prec[101],T, ult2cif;
char cuv[101];
void precalcul()
{
    for(int i = 1; i <= 100; i++)
        prec[i] = (prec[i - 1] + ultima_cifra_n(i)) % 10;
}
int ultima_cifra_n(int n)
{
    int  r = n % 4, p = 1;
    n = n % 10;
    if(r == 0) r = 4;
    while(r--)
        p *= n;
    return p % 10;
}

int main()
{
    precalcul();
    f >> T;
    while(T--)
    {
        f >> cuv;
        ult2cif = cuv[strlen(cuv) - 1] - '0';
        if(strlen(cuv) >= 2)
            ult2cif += (cuv[strlen(cuv) - 2] - '0') * 10;
        g << prec[ult2cif] << '\n';
    }
    return 0;
}