我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。
例如 6、8 都是丑数,但 14 不是,因为它包含质因子 7。
求第 n 个丑数的值。
数据范围
1≤n≤1000
样例
输入:5
输出:5
注意:习惯上我们把 1 当做第一个丑数。
class Solution {
public:
int getUglyNumber(int n) {
if(n<=1)return n;
vector<int> f(1,1);
int x=0,y=0,z=0;
while(--n)
{
long long p=min(f[x]*2,min(f[y]*3,f[z]*5));
if(p==f[x]*2)x++;//按从小到大依次使用
if(p==f[y]*3)y++;
if(p==f[z]*5)z++;
f.push_back(p);
}
return f.back();
}
};