Cod sursa(job #215265)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 18 octombrie 2008 08:36:54
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
#include<string.h>

int mod20[25];

void init()
{
	for(int i=1;i<20;++i)
	{
		mod20[i]=1;
		for(int j=1;j<=i;++j)
			mod20[i]=(mod20[i]*i)%10;
		mod20[i]=(mod20[i]+mod20[i-1])%10;
	}
}

int citire()
{
	char sir[105];
	scanf("%s\n",sir);
	int n=strlen(sir);
	if(n==1)
		return sir[0]-'0';
	return (sir[n-1]-'0') + 10 * (sir[n-2]-'0');
}

inline int cifra(int n)
{
	return (n/20*4+mod20[n%20])%10;
}
int main()
{
	freopen("cifra.in","r",stdin);
	freopen("cifra.out","w",stdout);
	int t,n;
	init();
	scanf("%d\n",&t);
	while(t--)
	{
		n=citire();
		printf("%d\n",cifra(n));
	}
	return 0;
}