Cod sursa(job #93668)

Utilizator sanaDascalu Laurentiu sana Data 19 octombrie 2007 20:18:40
Problema Cifra Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>
#include <math.h>

int ultima_cifra(long int a , long int n){
	int x,i;
	if (a==0) {
		return 1;
	}
	if (a==1) {
		return 1;
	}
	if (a==2) {
		n=n%4;
		x=1;
		for (i=0;i<n;i++)
			x*=2;
		x=x%10;
		return x;
	}
	if (a==3) {
		n=n%4;
		x=1;
		for (i=0;i<n;i++)
			x*=3;
		x=x%10;
		return x;
	}
	if (a==4) {
		if(n%2==0)
			x=6;
		else
			x=4;
		return x;
	}
	if (a==5) {
		return 5;
	}
	if (a==6) {
		return 6;
	}
	if (a==7) {
		n=n%4;
		x=1;
		for (i=0;i<n;i++)
			x*=7;
		x=x%10;
		return x;
	}
	if (a==8) {
		n=n%4;
		for (i=0;i<n;i++)
			x*=8;
		x=x%10;
		return x;
	}
	if (a==9) {
		n=n%2;
		x=1;
		for (i=0;i<n;i++)
			x*=9;
		x=x%10;
		return x;
	}
	return -1;
}

int main(){
	
	long int N,T,i,j,uc;
	FILE *fin,*fout;
	fin=fopen("cifre.in","rt");
	fout=fopen("cifre.out","wt");
	
	fscanf(fin,"%ld",&T);
	for (i=0;i<T;i++){
		fscanf(fin,"\n%ld",&N);
		uc=0;
		for (j=1;j<=N;j++){
			uc+=ultima_cifra(j%10,j);
			if (uc>=10)
				uc%=10;
		}
		fprintf(fout,"%ld\n",uc);
	}
	fclose(fin);
	fclose(fout);
	return 0;
}