设计一个算法,找出只含素因子2,3,5 的第 n 小的数。
符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12…
注意事项
我们可以认为1也是一个丑数
样例
如果n = 9, 返回 10
public int nthUglyNumber(int n) {
// write your code here
int[] num;
num = new int[n+1];
int p2,p3,p5;
p2=p3=p5=0;
num[0]=1;
for(int i=1;i<n;i++)
{
num[i]=min(min(num[p2]*2,num[p3]*3),min(num[p2]*2,num[p5]*5));
if(num[i]==num[p2]*2)
++p2;
if(num[i]==num[p3]*3)
++p3;
if(num[i]==num[p5]*5)
++p5;
}
return num[n-1];
}
public int min(int a,int b){
if(a>b){
return b;
}else{
return a;
}
}