Cod sursa(job #791930)

Utilizator petiVass Peter peti Data 25 septembrie 2012 19:46:47
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
#include <cstring>
using namespace std;

ifstream ifs("cifra.in");
ofstream ofs("cifra.out");

int main(int argc,char **argv){
	//precalculat cu programul:
	/* 
	#include <fstream>
	#include <cmath>
	using namespace std;
	ofstream ofs("prec.out");

	int p(int n){
		int x=n%10;
		long long int retval=1;
		for(int k=0;k<n;k++){
			retval=(retval%10)*x;
		}
		return retval;
	}
	int main(int argc,char **argv){
		for(int i=0;i<101;i++){
			long long int s=0;
			for(int n=1;n<=i;n++){
				
				s+=p(n);
			}
			ofs<<s%10<<',';
		}
		ofs.close();
	} */
	int period[]={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}; 
	char s[101];
	int T;
	ifs>>T;
	ifs.get();
	while(T--){
		ifs.getline(s,101);
		int l=strlen(s);
		if(l>=2)
			ofs<<period[s[l-1]-48+(s[l-2]-48)*10]<<endl;
		else
			ofs<<period[s[l-1]-48]<<endl;
	}
	delete[] s;
	ofs.close();
	return 0;
}