見つけるためのプログラム書く n
番目の醜い番号を。
醜い番号は 正の数 、その素因数のみが含ま 2, 3, 5
。
例:
入力: N = 10 出力: 12 説明: 1、2、3、4、5、6、8、9、10、12は、最初の10の醜い番号の配列です。
注意:
1
典型的には、醜い数として扱われます。n
1690を超えることはできません。
class Solution {
public:
int nthUglyNumber(int n) {
vector<int> res(1, 1);
int i2 = 0, i3 = 0, i5 = 0;
while (res.size() < n) {
int num2 = res[i2]*2, num3 = res[i3]*3, num5 = res[i5]*5;
int mn = min(num2, min(num3, num5));
if (mn == num2)
i2 ++;
if (mn == num3)
i3 ++;
if (mn == num5)
i5 ++;
res.push_back(mn);
}
return res.back();
}
};