标签:
Description:
Input:
Output:
Sample Input:
Sample Output:
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int N=6000; int a[N]; void Humble() { int x2, x3, x5, x7, y2=1, y3=1, y5=1, y7=1, i; a[1] = 1; for (i = 2; i <= 5842; i++) { x2 = a[y2]*2; x3 = a[y3]*3; x5 = a[y5]*5; x7 = a[y7]*7; a[i] = min(x2, x3); a[i] = min(a[i], x5); a[i] = min(a[i], x7); if (x2 == a[i]) y2++; ///x2,x3,x4,x5的最小值作为a[i],那么下标要加1,以免重复 if (x3 == a[i]) y3++; if (x5 == a[i]) y5++; if (x7 == a[i]) y7++; } } int main () { int n; Humble(); while (scanf("%d", &n), n) { if (n % 10 == 1 && n/10%10 != 1) printf("The %dst humble number is %d.\n", n, a[n]); ///注意英语中第几个数的输出,个位为1,2,3,但是十位不能是1,2,3,才能输出st,nd,rd,其他输出th else if (n % 10 == 2 && n/10%10 != 1) printf("The %dnd humble number is %d.\n", n, a[n]); else if (n % 10 == 3 && n/10%10 != 1) printf("The %drd humble number is %d.\n", n, a[n]); else printf("The %dth humble number is %d.\n", n, a[n]); } return 0; }
标签:
原文地址:http://www.cnblogs.com/syhandll/p/4841924.html