Cod sursa(job #732795)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 10 aprilie 2012 23:00:32
Problema Cifra Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
//Beiland Arnold
#include <fstream>
#include <cctype>
using namespace std;

short usz(const short x); 

int main(){
	ifstream fin("cifra.in");
	ofstream fout("cifra.out");
	short T;
	fin>>T;
	for(short i=0;i<T;i++){
		char penult='0', ult='0',c;
		fin>>ult;
		fin.get(c);
		while(isalnum(c)){
			penult=ult; 
			ult=c;
			fin.get(c);
		}
		if(penult!='0') fout<<usz((penult-48)*10+ult-48)<<'\n';
		else fout<<usz(ult-48)<<'\n';
	}	
	fout.close();
	fin.close();
	return 0;
}

short usz(const short x){
 	short retval=0;
	static const short par[]={0, 1, 4, 7, 6, 5, 6, 3, 6, 9};  //penultima cifra
	static const short impar[]={0, 1, 6, 3, 6, 5, 6, 7, 4, 9};
	for(short i=1;i<=x;i++){
		if(i>10&&i/10%2) retval+=impar[i%10];
		else retval+=par[i%10];
		retval%=10;
	}
	return retval;
}