Cod sursa(job #616124)

Utilizator warchildmdMihail Burduja warchildmd Data 11 octombrie 2011 19:55:06
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include<cstdio>
#include<cstring>
using namespace std;

int ps[101];
int T;

int ctoi(char x)
{
    switch(x)
    {
    case '0':
        return 0;
    case '1':
        return 1;
    case '2':
        return 2;
    case '3':
        return 3;
    case '4':
        return 4;
    case '5':
        return 5;
    case '6':
        return 6;
    case '7':
        return 7;
    case '8':
        return 8;
    case '9':
        return 9;
    }
    return 0;
}

int lp(int x)
{
    int sol = x;
    for(int i = 2; i <= x; i++)
    {
        sol *=  x;
        sol %= 10;
    }
    return sol;
}

int stoi(char* str)
{
    int len = strlen(str);
    int sol = 0;
    sol += ctoi(str[len-1])*1;
    if(strlen(str)>1)
        sol += ctoi(str[len-2])*10;
    return sol;
}

void precompute()
{
    ps[0] = 0;
    ps[1] = 1;
    for(int i = 2; i < 100; i++)
    {
        ps[i] = (ps[i-1] + lp(i))%10;
    }
}

int main()
{
    precompute();
    freopen("cifra.in","r",stdin);
    freopen("cifra.out", "w", stdout);
    char buffer[128];
    scanf("%d", &T);
    for(int i = 0; i < T; i++)
    {
        scanf("%s", buffer);
        int temp = stoi(buffer);
        printf("%d\n", ps[temp]);
    }
    return 0;
}