Cod sursa(job #167346)

Utilizator istiMihai Istudor isti Data 29 martie 2008 14:58:42
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#include<string.h>
int ucifra(int a,int b){
	int p=1,i;
	a%=10;
	b%=4;
	if(b==0)
		b=4;
	for(i=1;i<=b;i++)
		p*=a;
	return p%10;
}
inline int transform(char s[120]){
	int n=strlen(s);
	if(n==1)
		return s[n-1]-'0';
	return (s[n-2]-'0')*10+(s[n-1]-'0');
}
int main()
{
	freopen("cifra.in","r",stdin);
	freopen("cifra.out","w",stdout);
	int i,n,t,s;
	char sa[120];
	scanf("%d\n",&t);
	while(t--){
		s=0;
		scanf("%s\n",sa);
		n=transform(sa);
		s+=(n/20*4);
		n%=20;
		for(i=1;i<=n;++i)
			s+=ucifra(i,i);
		s%=10;
		printf("%d\n",s);
	}
	return 0;
}