Cod sursa(job #2960540)

Utilizator Pop_EmilPal Tamas Pop_Emil Data 4 ianuarie 2023 16:57:36
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <string.h>
using namespace std;

int T;
char *ch_seq;
FILE *in = fopen("cifra.in", "r"), *out = fopen("cifra.out", "w");

int digits[105], nr_of_digits;
int dpows[10], N, result, lastd;

int main()
{
    fscanf(in, "%d\n", &T);
    char ch;
    while(T--){
        nr_of_digits = 0;
        while(1){
            ch = fgetc(in);
            if (ch == EOF || ch == '\n')
                break;
            digits[nr_of_digits++] = ch - '0';
        }

        result = 0;
        lastd = 1;
        for (int i = 1; i <= 9; ++i)
            dpows[i] = 1;
        dpows[0] = 0;

        N = (nr_of_digits > 1 ? digits[nr_of_digits-2] : 0) * 10 + digits[nr_of_digits-1];
        while (N--) {
            for (int i = 2; i <= 9; ++i)
                dpows[i] = (dpows[i] * i) % 10;
            result = (result + dpows[lastd]) % 10;
            lastd = (lastd + 1) % 10;
        }
        fprintf(out, "%d\n", result);
    }

    fclose(in);
    fclose(out);
    return 0;
}