Cod sursa(job #405015)

Utilizator keller946Radoi Liviu keller946 Data 27 februarie 2010 11:02:22
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
void calculeaza(unsigned long n){
	unsigned long cf=0,i,cif;
	for(i=1;i<=n;i++)
		{
			cif=i%10;

			if (cif==1) cf+=1;
			if (cif==5) cf+=5;
			if (cif==6) cf+=6;
			if (cif==2){
				if((i-1)%4==0) cf+=2;
				if((i-2)%4==0) cf+=4;
				if((i-3)%4==0) cf+=8;
				if((i-4)%4==0) cf+=6;
			}
			if (cif==3){
				if((i-1)%4==0) cf+=3;
				if((i-2)%4==0) cf+=9;
				if((i-3)%4==0) cf+=7;
				if((i-4)%4==0) cf+=1;
			}
			if (cif==4){
				if((i-1)%2==0) cf+=4;
				if((i-2)%2==0) cf+=6;
			}
			if (cif==7){
				if((i-1)%4==0) cf+=7;
				if((i-2)%4==0) cf+=9;
				if((i-3)%4==0) cf+=3;
				if((i-4)%4==0) cf+=1;
			}
			if (cif==8){
				if((i-1)%4==0) cf+=8;
				if((i-2)%4==0) cf+=4;
				if((i-3)%4==0) cf+=2;
				if((i-4)%4==0) cf+=6;
			}
			if (cif==9){
				if((i-1)%2==0) cf+=9;
				if((i-2)%4==0) cf+=1;
			}
		}
		cf%=10;
		g<<cf<<endl;
}

int main(){

	long int n,i,j;
	f>>n;
	for(j=1;j<=n;j++){
		f>>i;
		calculeaza(i);
	}
	g.close();
	return 0;
}