生活随笔
收集整理的这篇文章主要介绍了
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的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。