题目描述
丑数
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
源码
class Solution {
public:
int GetUglyNumber_Solution(int index) {
vector<int> arr;
arr.push_back(1);
int p2,p3,p5;
int result;
p2=p3=p5=0;
while(arr.size()<index)
{
int newVal;
newVal=min(arr[p2]*2,min(arr[p3]*3,arr[p5]*5));
if(arr[p2]*2 == newVal) p2++;
if(arr[p3]*3 == newVal) p3++;
if(arr[p5]*5 == newVal) p5++;
arr.push_back(newVal);
}
result = arr[index-1];
return result;
}
};