思路:用2,3,5分別求積得到所有的醜數,再排序後求第n個
#include<iostream>
#include<algorithm>
using namespace std;
const int maxN = 1500;
int main()
{
int a[maxN];
int pos = 0;
for(int i = 1; i < 100; i*=2)
for(int j = 1; j < 100; j *= 3)
for(int k = 1; k < 100; k *=5)
{
a[pos++] = i*j*k;
if(pos >= maxN)
break;
}
sort(a, a+pos);
int input;
std::cin >> input;
while(input != 0){
cout << a[input-1] << endl;
cin >> input;
}
}