生活随笔
收集整理的這篇文章主要介紹了
poj 2247 Humble Numbers
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Humble Numbers
| Time Limit:?1000MS | ? | Memory Limit:?65536K |
| Total Submissions:?9453 | ? | Accepted:?4440 |
題目大意:找出全部因子中僅僅有2,3,5,7的數(shù)。給出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");
}
總結(jié)
以上是生活随笔為你收集整理的poj 2247 Humble Numbers的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。