Cod sursa(job #658268)

Utilizator sausage_catVlad Alin sausage_cat Data 8 ianuarie 2012 14:48:24
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb

#include <stdio.h>
#include <string.h>

const int cMaxBuff = 256;

int SqSumLastDigitOf[] = 
{
	0, 1, 5, 2, 8, 3, 9, 2, 8, 7,
	7, 8, 4, 7, 3, 8, 4, 1, 5, 4,
	4, 5, 9, 6, 2, 7, 3, 6, 2, 1,
	1, 2, 8, 1, 7, 2, 8, 5, 9, 8,
	8, 9, 3, 0, 6, 1, 7, 0, 6, 5,
	5, 6, 2, 5, 1, 6, 2, 9, 3, 2,
	2, 3, 7, 4, 0, 5, 1, 4, 0, 9,
	9, 0, 6, 9, 5, 0, 6, 3, 7, 6,
	6, 7, 1, 8, 4, 9, 5, 8, 4, 3,
	3, 4, 0, 3, 9, 4, 0, 7, 1
};


int main(){
	FILE *fin = fopen("cifra.in","r");
	FILE *fout = fopen("cifra.out","w");

	int nStringSize;
	int nNumbers;
	int nDigitUnit;
	int nDigitDec;
	int nLastTwoDigits;
	char buff[cMaxBuff];

	fscanf(fin,"%d",&nNumbers);
	fgets(buff,cMaxBuff,fin);
	for(int i=0;i<nNumbers;i++){
		fgets(buff,cMaxBuff,fin);
		nStringSize = strlen(buff);
		nDigitDec = 0;
		if(buff[nStringSize-1] == 10){
			if(nStringSize>3){
				nDigitUnit = buff[nStringSize-2]-48;
				nDigitDec = buff[nStringSize-3]-48;
			}else
				nDigitUnit = buff[nStringSize-2]-48;
		}
		else{
			if(nStringSize>2){
				nDigitUnit = buff[nStringSize-1]-48;
				nDigitDec = buff[nStringSize-2]-48;
			}else
				nDigitUnit = buff[nStringSize-1]-48;
		}
		int nLastTwoDigits = nDigitUnit + nDigitDec*10;
		fprintf(fout,"%d\n",SqSumLastDigitOf[nLastTwoDigits]);
	}

	return 0;
}