Cod sursa(job #1518435)

Utilizator mariusn01Marius Nicoli mariusn01 Data 5 noiembrie 2015 21:48:40
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
// 1^1 + 2^2 + ... + 99^99 mod 10 = 0
// x ^ x mod 10 = x ^ (x+4) mod 10 deci x^x = (x + 100)^(x+100) mod 10
#include <cstring>
#include <cstdio>

using namespace std;

char s[105];
int v[105];
int n, i, j, p, t, x;

int main() {

    v[0] = 0;
    for (i=1;i<=99;i++) {
        p = 1;
        for (j=1;j<=i;j++)
            p = (p * i) % 10;
        v[i] = (v[i-1] + p) % 10;
    }

    FILE *fin  = fopen("cifra.in" ,"r");
    FILE *fout = fopen("cifra.out","w");

    fscanf(fin,"%d\n",&t);
    while (t--) {
        fgets(s, 103, fin);
        if (s[strlen(s)-1] == '\n')
            s[strlen(s)-1] = 0;
        if (strlen(s) == 1)
            x = s[0]-'0';
        else
            x = (s[ strlen(s)-2 ] - '0') * 10 + s[ strlen(s)-1 ] - '0';
        fprintf(fout,"%d\n",v[x]);
    }


    return 0;
}