经典题,注意输出
代码:
#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;
}