Cod sursa(job #1402235)

Utilizator IonSebastianIon Sebastian IonSebastian Data 26 martie 2015 13:41:43
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <cstring>
using namespace std;

ifstream in("cifra.in");
ofstream out("cifra.out");

const int MAX = 100;

int v[MAX+1];

int logpow(int x, int p)
{
    if(p == 1)
        return x%10;
    if((p&1) == 0)
        return logpow(x*x%10,p/2)%10;
    return x*logpow(x*x%10,p/2)%10;
}

int main()
{
    int no;
    for(int i = 1; i <= 100; i++)
        v[i] = (logpow(i,i)%10+v[i-1])%10;

    int n;
    char s[MAX+1];
    in >> n;
    int l;
    while(n > 0)
    {
        in >> s;
        l = strlen(s);
        if(l > 1)
            out << v[(s[l-2]-'0')*10+s[l-1]-'0'] << "\n";
        else
            out << v[s[0]-'0']%10 << "\n";
        n--;
    }
    return 0;
}