Cod sursa(job #155483)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 11 martie 2008 22:49:44
Problema Cifra Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<string.h>
#include<fstream>
using namespace std;
int t,n,uc=0;
int calculat[100]={-1};

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

void citeste()
{   char c[100]={0};
    int count=0;

    fin.get(c,100,'\n');
    fin.get();
    count=strlen(c);

    switch (count)
    {   case 1: {n=c[0]-'0';break;}
	    case 2: {n=10*(c[0]-'0')+c[1]-'0';break;}
	    default: n=10*(c[count-2]-'0')+c[count-1]-'0';
    }
}

void scrie()
{
    fout<<uc<<endl;
}

void rezolva()
{   int i,j;
    int temp;

    fin>>t;
    fin.get();

    while(t--)
    {   citeste();
    	if(calculat[n]==-1)
	{   uc=0;
		for(i=1;i<=n;i++)
		{    temp=i;
        	     for(j=1;j<i;j++)
        	     {    temp*=i;
        		  temp%=10;
        	     }
        	     uc+=temp;
        	     uc%=10;
         	}
         	calculat[n]=uc;
        } else uc=calculat[n];
        scrie();
    }
}

int main()
{
    for(int i=0;i<100;i++) calculat[i]=-1;
    rezolva();
    fin.close(); fout.close();
    return 0;
}