POJ 2247

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 #include<string>
 5 #include<map>
 6 using namespace std;
 7 int min_4(int a,int b,int c,int d)
 8 {
 9     a=a<b?a:b;
10     a=a<c?a:c;
11     a=a<d?a:d;
12     return a; 
13 }
14 string work(int x)
15 {
16     string s="th";
17     const string ss[3]={"st","nd","rd"};
18     int t=x%10;
19     if(t==1&&x%100!=11)s=ss[0];
20     else if(t==2&&x%100!=12)s=ss[1];
21     else if(t==3&&x%100!=13)s=ss[2];      
22     return s;   
23 }    
24 int main()
25 {
26     //freopen("acm.acm","r",stdin);
27     int n,len,i,t,m;
28     len=1;
29     int a[6000],x2=0,x3=0,x5=0,x7=0;
30     a[0]=1;
31     while(len <= 5846)
32     {
33           m=min_4(a[x2]*2,a[x3]*3,a[x5]*5,a[x7]*7);
34           if(m==a[x2]*2)x2++; 
35           if(m==a[x3]*3)x3++;
36           if(m==a[x5]*5)x5++;
37           if(m==a[x7]*7)x7++;
38           a[len++]=m;        
39     }     
40     while(scanf("%d",&n))
41     {
42           if(!n)
43               break;
44           string s=work(n);            
45           printf("The ");
46           printf("%d",n);
47           printf("%s",s.c_str());
48           printf(" humble number is ");
49           printf("%d",a[n-1]);
50           printf(".
");       
51     }
52     return 0;
53 }
54  
原文地址:https://www.cnblogs.com/gavinsp/p/4566732.html