Time Limit: 2000/1000 MS
(Java/Others) Memory Limit: 65536/32768 K
(Java/Others)
Total Submission(s): 14933 Accepted
Submission(s): 6494
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 |
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #define MAX 5843 using
namespace std; int find_min( int
a , int
b , int
c , int
d) { int
temp = a < b ? a : b ; int
index = c < d ? c : d ; return
(temp < index ? temp : index) ; } int
main() { int
i,j,n,ta,tb,tc,td,id1,id2,id3,id4; int
dp[MAX]; dp[0]=1; id1=id2=id3=id4=0; for (j=1; j<MAX; j++) { dp[j]=find_min(ta=dp[id1]*2,tb=dp[id2]*3,tc=dp[id3]*5,td=dp[id4]*7); if (dp[j]==ta) id1++; if (dp[j]==tb) id2++; if (dp[j]==tc) id3++; if (dp[j]==td) id4++; } while (cin>>n&&n) { if (n%10==1&&n%100!=11) { printf ( "The %dst humble number is %d.\n" ,n,dp[n-1]); continue ; } if (n%10==2&&n%100!=12) { printf ( "The %dnd humble number is %d.\n" ,n,dp[n-1]); continue ; } if (n%100!=13&&n%10==3) { printf ( "The %drd humble number is %d.\n" ,n,dp[n-1]); continue ; } printf ( "The %dth humble number is %d.\n" ,n,dp[n-1]); } return
0; } |
原文:http://www.cnblogs.com/lxm940130740/p/3582693.html