Cod sursa(job #1278166)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 28 noiembrie 2014 16:31:52
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int v[105];
int pt(int x,int b)
{
    int x1 = x,x2 = 1;
    if(b == 0) return 1;
    if(b == 1) return x % 10;
    while(b > 1)
        if(b&1){
            b ^= 1;
            x2 = (x1 * x2) % 10;
        }
        else{
            b >>= 1;
            x1 = (x1 * x1) % 10;
        }
    return (x1 * x2)%10;
}

void precalc()
{
    for(int i = 1; i <= 100; ++i)
        v[i] = (v[i-1] + pt(i,i))%10;
}

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

    int T; scanf("%d\n",&T);
    precalc();
    while(T--)
    {
        char c[256];
        scanf("%s\n",&c);
        reverse(c,c+strlen(c));
        if(c[1] == 0)
            printf("%d\n",v[c[0] - 48]);
        else
            printf("%d\n",v[ (c[1]-48) * 10 + (c[0]-48) ] );
    }

    return 0;
}