poj 2247

经典题,注意输出

代码:

#include<iostream>
#include<fstream>

using namespace std;

long long a[5843];

long long min(long long s,long long t){
	if(s<t) return s;
	return t;
}

void read(){
//	ifstream cin("in.txt");
	int i,j,k;
	int n1,n2,n3,n4;
	n1=1;n2=1;n3=1;n4=1;
	a[1]=1;
	
	for(i=2;i<=5842;i++)
	{
		a[i]=min(min(a[n1]*2,a[n2]*3),min(a[n3]*5,a[n4]*7));
		if(a[i]==a[n1]*2)
			n1++;
		if(a[i]==a[n2]*3)
			n2++;
		if(a[i]==a[n3]*5)
			n3++;
		if(a[i]==a[n4]*7)
			n4++;
	}
	j=0;
	char c[5];
	while(cin>>i)
	{
		j++;
		
		if(i==0) return;
		if(j%10==1&&j%100!=11)
			strcpy(c,"st");
		else
			if(j%10==2&&j%100!=12)
				strcpy(c,"nd");
			else
				if(j%10==3&&j%100!=13)
					strcpy(c,"rd");
				else
					strcpy(c,"th");
		cout<<"The "<<i<<c<<" humble number is "<<a[i]<<"."<<endl;
		
	}


	
	
}

int main(){
	read();
	return 0;
}

posted on 2011-05-09 11:32  宇宙吾心  阅读(327)  评论(0编辑  收藏  举报

导航