Cod sursa(job #1358901)

Utilizator EberardoVladianu Cosmin Eberardo Data 24 februarie 2015 20:31:29
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <cstring>
#include <cstdlib>
using namespace std;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
char a[30001][102];
int l[30001];
int val[102];
int t;
int rez;
void putere(int x,int nr,int &rez)
{
    while(nr>0)
    {
        if(nr%2==0)
        {
            x=(x*x)%10;
            nr=nr/2;
        }
        else
        {
            rez=(rez*x)%10;
            x=(x*x)%10;
            nr=nr/2;
        }
    }

}
void init()
{

    int i,suma=0;
    for(i=1; i<=100; i++)
    {
        rez=1;
        putere(i,i,rez);
        suma=(suma+rez)%10;
        val[i]=suma;

    }
}
int main()
{
    int i,cur,maxim;
    fin>>t;
    init();
    for(i=1;i<=t;i++)
    {
        fin.get();
        fin.get(a[i],102);
        l[i]=strlen(a[i])-1;
        if(l[i]==0)
        {
            cur=a[i][l[i]]-'0';
        }
        else
        {
            cur=a[i][l[i]-1]-'0';
            cur=cur*10;
            cur=cur+a[i][l[i]]-'0';

        }
        fout<<val[cur]<<endl;
    }
    return 0;
}