Cod sursa(job #642806)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 2 decembrie 2011 12:19:57
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <cstdio>
#include <math.h>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;

long long S,v[200];
char a[200];

int main()
{
	int T,i;
	double j;
	freopen("cifra.in","r", stdin);
	freopen("cifra.out","w", stdout);
	for(int i=1;i<=99;i++)
	{
		int S=0;
		for(int j=1;j<=i;j++)
		{
			if(j*j!=j*j*j) 
			{
				
				if(j%4==0) S+=(j%10)*(j%10)*(j%10)*(j%10)%10;
				if(j%4==1) S+=j%10;
				if(j%4==2) S+=(j%10)*(j%10)%10;
				if(j%4==3) S+=(j%10)*(j%10)*(j%10)%10;
				
			}
			else
			{
				if(j%2==0) S+=(j%10)%10;
				if(j%2==1) S+=(j%10)*(j%10)%10;
			
			}
			S=S%10;
		}
		v[i]=S;
	}
//	for(int i=1;i<=99;i++) cout<<v[i]<<endl;

	scanf("%d",&T);	
	for(i=1;i<=T;i++)
	{
		scanf("%s",a); 
		int n=strlen(a);
		int nr;
		if(n>1) nr=(a[n-2]-'0')*10+a[n-1]-'0';
		else nr=atoi(a);
		cout<<v[nr]<<endl;
	
	}	
	/*
	iesire=fopen("cifra.out","w");
	
	
	for(i=1;i<=T;i++)
	{	
		S=0;
	    for(j=1;j<=i;j++)
		{
			S=S+pow(j,j);
		}
		fprintf(iesire,"%lld", S%10);
		if(i!=T) fprintf(iesire,"\n");

	}*/
	return 0;
}