#include <iostream>
#include <vector>
#include <queue>
#include <map>
using namespace std;
typedef long long ll;
int main()
{
int arr[3]={2,3,5};
priority_queue<ll,vector<ll>,greater<ll> > que;//top是最小的
map<int,int> m1;
que.push(1);
m1.insert(make_pair(1,1));
int i=1;
while(i!=1500)
{
ll tmp0=que.top();
que.pop();//一直在删除第i个
for(int j=0;j<3;++j)
{
ll tmp1=tmp0*arr[j];
if(m1[tmp1]==0)
{
m1[tmp1]++;
que.push(tmp1);
}
}
i++;
}
cout<<"The 1500'th ugly number is " << que.top() << ".\n";
return 0;
}
UVA 136 Ugly Numbers
最新推荐文章于 2020-07-03 17:20:48 发布