題目描述
把只包含因子2穆碎、3和5的數(shù)稱作丑數(shù)(Ugly Number)烤宙。例如6绰咽、8都是丑數(shù)寝杖,但14不是蜕着,因為它包含因子7酬凳。 習慣上我們把1當做是第一個丑數(shù)惠况。求按從小到大的順序的第N個丑數(shù)。
class Solution {
public:
int GetUglyNumber_Solution(int index) {
if(index<=0)
return 0;
vector<int> rec(index,1);
int p2=0,p3=0,p5=0,i=1;
while(i<index)
{
rec[i] = min(rec[p2]*2,min(rec[p3]*3,rec[p5]*5)); //將丑書依次排序
while(rec[p2]*2<=rec[i]) //將丑數(shù)排序宁仔,找到離rec[i]最近的前一個稠屠,然后再把p2+1,最后判斷和比較的時候就可以得到相對較小的那一個
p2++;
while(rec[p3]*3<=rec[i])
p3++;
while(rec[p5]*5<=rec[i])
p5++;
i++;
}
return rec[index-1];
}
};