欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

poj 2247 Humble Numbers

发布时间:2025/6/15 编程问答 68 豆豆
生活随笔 收集整理的这篇文章主要介绍了 poj 2247 Humble Numbers 小编觉得挺不错的,现在分享给大家,帮大家做个参考.


Humble Numbers
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 9453 Accepted: 4440

题目大意:找出全部因子中仅仅有2,3,5,7的数。给出n,求出第n个这样   仅仅有6000不到打表

注意第11  12  13 的输出与 1   2   3    几十一   几十二   几十三 的输出不同  



#include <iostream> #include <algorithm> using namespace std;long humble[6000];int main() {int i, n2, n3, n5, n7;humble[1] = 1;n2 = 1;n3 = 1;n5 = 1;n7 = 1;for (i = 2; i <= 5900; i++){humble[i] = min(min(humble[n2]*2, humble[n3]*3), min(humble[n5]*5, humble[n7]*7));if (humble[i] == humble[n2]*2)n2++;if (humble[i] == humble[n3]*3)n3++;if (humble[i] == humble[n5]*5)n5++;if (humble[i] == humble[n7]*7)n7++;}int num;while (cin >> num && num){int tmp1, tmp2;tmp1 = num % 10;tmp2 = num % 100;if (tmp1 == 1){if (tmp2 == 11)cout << "The " << num << "th humble number is " << humble[num] << "." << endl;else cout << "The " << num << "st humble number is " << humble[num] << "." << endl;}else if (tmp1 == 2){if (tmp2 == 12)cout << "The " << num << "th humble number is " << humble[num] << "." << endl;elsecout << "The " << num << "nd humble number is " << humble[num] << "." << endl;}else if (tmp1 == 3){if (tmp2 == 13)cout << "The " << num << "th humble number is " << humble[num] << "." << endl;elsecout << "The " << num << "rd humble number is " << humble[num] << "." << endl;}else cout << "The " << num << "th humble number is " << humble[num] << "." << endl;}system("pause"); }

总结

以上是生活随笔为你收集整理的poj 2247 Humble Numbers的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。