设计一个算法,找出只含素因子2,3,5 的第 n 大的数。
符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12…
样例
如果n = 9, 返回 10
class Solution {
public:
/*
* @param n an integer
* @return the nth prime number as description.
*/
int nthUglyNumber(int n) {
// write your code here
if(n==1) return 1;
queue<int> q2,q3,q5;
int number=1;
n=n-1;
while(n--)
{
q2.push(number*2);
q3.push(number*3);
q5.push(number*5);
int k2=q2.front();
int k3=q3.front();
int k5=q5.front();
int minTemp=min(k2,min(k3,k5));
number=minTemp;
if(minTemp==q2.front()) q2.pop();
if(minTemp==q3.front()) q3.pop();
if(minTemp==q5.front()) q5.pop();
}
return number;
}
};