Cod sursa(job #209151)

Utilizator pitbullpitbulll pitbull Data 20 septembrie 2008 23:25:07
Problema Cifra Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.99 kb
# include <string.h>
# include <stdio.h>
# define NMAX 105


int i,N,res,resaux,sum;
int v[NMAX];
char str[NMAX];

int result(int a,int b){
	if(b == 0)
		return 1;
	if( a == 0 || a == 1 || a== 5 || a== 6)
		return a;
	if( a == 9){
		if( b%2 == 0)
			return 1;
		return 9;
	}
	
	int prod=1,i;
	if(b % 4 == 0){
		for (i=1;i<=4;i++)
			prod*=a;
		return prod%10;
	}
	else
		for (i=1;i<=b % 4; i++)
			prod*=a;
	return prod%10;
}

int main (){
	FILE* f=fopen("cifra.in","rt");
	FILE* g=fopen("cifra.out","wt");
	
	for (i=1;i<=100;i++){
		v[i]=result(i%10,i);
	}
	
	for (i=1;i<=10;i++)
		printf("%d ",v[i]);
	
	int aux=0;
	for (i=0;i<=100;i++){
		v[i]+=aux;
		v[i]%=10;
		aux=v[i];
	}
	
	fscanf(f,"%d",&N);
	
	for (i=0;i<N;i++){
		fscanf(f,"%s",str);
		
		res=str[strlen(str)-1]-'0';
		
		resaux=0;
		if(strlen(str)>=2)
			resaux=str[strlen(str)-2]-'0';
		
		sum=resaux*10+res;
		
		fprintf(g,"%d\n",v[sum]);
	}
	
	fclose(f);
	fclose(g);
	return 0;
}