Cod sursa(job #732806)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 10 aprilie 2012 23:23:49
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
//Beiland Arnold
#include <fstream>
using namespace std;
inline const short usz(const short x); 
int main(){
	ifstream fin("cifra.in");
	ofstream fout("cifra.out");
	short T;
	fin>>T;
	char c;
	fin.get(c); // '\n'
	while(T--){
		char penult='0', ult='0';
		fin.get(c);
		while(c!='\n'){
			penult=ult; 
			ult=c;
			fin.get(c);
		}
		fout<<usz(10*penult+ult-528)<<'\n';
	}	
	fout.close();
	fin.close();
	return 0;
}
/* aceasta e ideea
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;
}
*/
// cu calcule deja facute:
inline const short usz(const short x){
	static const short retval[]={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, 0};
	return retval[x];
}