Cod sursa(job #2960873)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 5 ianuarie 2023 03:25:21
Problema Cifra Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int g_table[10][4];

void precalc_g_table() {
    for(int i = 0; i < 10; i++) {
        g_table[i][0] = i;

        for(int j = 1; j < 4; j++) {
            g_table[i][j] = (g_table[i][j-1] * i) % 10;
        }
    }
}

int g(int x) {
    return g_table[x%10][(x - 1)%4];
}

int max(int a, int b) {
    if(a > b)
        return a;
    return b;
}

int main() {
    freopen("cifra.in", "r", stdin);
    freopen("cifra.out", "w", stdout);

    int T;

    precalc_g_table();

    scanf("%d", &T);

    while(T--) {
        char N[105];
        int n = 0, ans = 0;
        
        scanf("%s", N);
        
        int len_N = strlen(N);
        
        for(int i = max(0, len_N - 2); i < len_N; i++) {
            n = n * 10 + N[i] - '0';
        }
        memset(N, 0, sizeof(N));

        for(int i = 1; i <= n; i++) {
            ans = (ans + g(i)) % 10;
        }

        printf("%d\n", ans);
    }

    return 0;
}