Cod sursa(job #3276837)

Utilizator dariuseranDelca Darius dariuseran Data 14 februarie 2025 19:59:17
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include <cmath>
#include <string>

using namespace std;

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

int getLastDigitOfPower(int base, int exponent) {
    if (exponent == 0) return 1;  // orice număr la puterea 0 este 1
    return (int)pow(base, exponent) % 10;  // folosim funcția pow și mod 10 pentru a obține ultima cifră
}

int main() {
    int T;
    fin >> T;
    while (T--) {
        string N;
        fin >> N;
        
        int sumLastDigit = 0;
        
        // Calculăm suma Gauss de puteri
        for (int i = 1; i <= 9; i++) {
            int exponent;
            if (N.length() == 1) {
                exponent = N[0] - '0';  // dacă N are un singur caracter, folosim direct valoarea acestuia
            } else {
                exponent = ((N[N.length()-2] - '0') * 10 + (N[N.length()-1] - '0')) % 4;
                if (exponent == 0) exponent = 4;  // Dacă exponentul este 0, îl considerăm 4, pentru că ciclul începe de la 1
            }
            sumLastDigit = (sumLastDigit + getLastDigitOfPower(i, exponent)) % 10;
        }

        fout << sumLastDigit << "\n";
    }
    return 0;
}