Cod sursa(job #306119)

Utilizator popoiu.georgeGeorge Popoiu popoiu.george Data 19 aprilie 2009 20:20:59
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include<fstream>
using namespace std;

fstream f("cifra.in",ios::in),g("cifra.out",ios::out);

unsigned long t,v[40000],rez=0;

unsigned long ultima(unsigned long a)
{
if(a%10==0)return 0;
else if(a%10==1)return 1;
else if(a%10==2)
	{
	if(a%4==0)return 6;
	else if(a%4==1)return 2;
	else if(a%4==2)return 4;
	else if(a%4==3)return 8;
	}
else if(a%10==3)
	{
	if(a%4==0)return 1;
	else if(a%4==1)return 3;
	else if(a%4==2)return 9;
	else if(a%4==3)return 7;
	}
else if(a%10==4)
	{
	if(a%2==0)return 6;
	else return 4;
	}
else if(a%10==5)return 5;
else if(a%10==6)return 6;
else if(a%10==7)
	{
	if(a%4==0)return 1;
	else if(a%4==1)return 7;
	else if(a%4==2)return 9;
	else if(a%4==3)return 3;
	}
else if(a%10==8)
	{
	if(a%4==0)return 6;
	else if(a%4==1)return 8;
	else if(a%4==2)return 4;
	else if(a%4==3)return 2;
	}
else if(a%10==9)
	{
	if(a%2==0)return 1;
	else return 9;
	}
}

unsigned long suma(unsigned long a)
{
unsigned long int i,final=0;
for(i=1;i<=a;i++){final+=ultima(i);final%=10;}
//final%=10;
return final;
}

int main()
{
unsigned long i;
f>>t;
for(i=1;i<=t;i++)f>>v[i];
for(i=1;i<=t;i++)
	{
	if(v[i]==0)g<<"0"<<endl;
	else g<<suma(v[i])<<endl;
	}
return 0;
}