ugly numbers are numbers whose only prime factors are 2, 3 or 5. the sequence
1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...
shows the first 11 ugly numbers. by convention, 1 is included.
write a program to find and print the 1500'th ugly number.
there is no input to this program. output should consist of a single line as shown below, with replaced by the number computed.
the 1500'th ugly number is .
題目求第1500個醜數(因數只有2,3,5的數,包括1)。借用stl的優先佇列,假設佇列中有若干個醜數(初始值為1),每次取出佇列中最小的醜數,判斷其是否是第1500個。若不是,則用其乘以2,3,5,再入隊(保證不重複,借用set.count來判斷)。依此類推,當迴圈到i為1500的時候取出的醜數就是第1500個(因為每次取出的都是對立中最小的)。
#include #include #include #include #include #include #define ll long long
using namespace std;
int main()
; q.push(1);
s.insert(1);
for(int i=1;;i++)
{ll t=q.top();
q.pop();
if(i==1500)
{cout<<"the 1500'th ugly number is "<
UVA136解題報告
先來份錯誤 親愛的小夥伴們,希望你們能找到其中的問題,順便說一句,用的是廣搜 include includeusing namespace std int main printf d n q.front return 0 上面是我用很短的時間寫出來的很漂亮的 如果說有什麼不完美的地方,那就是他是錯的...
Uva136 醜數 優先佇列
找出第1500個素因子只能有2或3或5的數。懵逼了吧,並不是素因子篩,用2,3,5去篩並不能得到滿足醜數要求的數,例如14就篩不掉。優先佇列每次取乙個最小的數x,2x,3x,5x,都是醜數,但是每次要判斷是否有重數 set 取1500,每次都是取出最小的數,取1500次之後就是第1500個數。inc...
例題5 7 醜數 UVa136
演算法 競賽入門經典 第2版 第5章c 與stl入門 例 題5 7 醜數 uva136 感悟。菜題乙個。2 基本思路,能被2整除,一直除2 能被3整除,一直除3 能被5整除,一直除5 最後值為1,則為醜數。3 編好提交 limit exceeded,菜題不菜,感受到競賽題的威力。4 用printf ...