Cod sursa(job #732786)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 10 aprilie 2012 22:35:41
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
//Beiland Arnold
#include <fstream>
#include <string>

short usz(short x);  // x: numar format din ultimele doua cifre

int main(){
	std::ifstream fin("cifra.in");
	std::ofstream fout("cifra.out");
	short T;
	fin>>T;
	for(short i=0;i<T;i++){
		std::string s;
		fin>>s;
		int sz = s.length();
		if(sz>1) fout<<usz((s[sz-2]-48)*10+s[sz-1]-48)<<'\n';   
		else fout<<usz(s[sz-1]-48)<<'\n';
	}	
	fout.close();
	fin.close();
	return 0;
}

short usz(short x){
	short retval=0;
	static const short impar[]={0, 1, 4, 7, 6, 5, 6, 3, 6, 9};  //penultima cifra
	static const short par[]={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;
}