您的位置:首页 > 其它

Ugly Number II

2016-10-24 07:36 99 查看
Write a program to find the
n
-th ugly number.

Ugly numbers are positive numbers whose prime factors only include
2, 3, 5
. For example,
1, 2, 3, 4, 5, 6, 8, 9, 10, 12
is the sequence of the first
10
ugly numbers.

Note that
1
is typically treated as an ugly number.

3 pointer index2, index3, index5

public class Solution {
public int nthUglyNumber(int n) {
int isUglyNum[] = new int
;
isUglyNum[0] = 1;
int count = 1;
int index2 = 0;
int index3 = 0;
int index5 = 0;
while(count < n){
isUglyNum[count] = Math.min(isUglyNum[index2] * 2, Math.min(isUglyNum[index3] * 3, isUglyNum[index5] * 5));
if(isUglyNum[count] == isUglyNum[index2] * 2)
index2 ++;
if(isUglyNum[count] == isUglyNum[index3] * 3)
index3 ++;
if(isUglyNum[count] == isUglyNum[index5] * 5)
index5 ++;
count++;
}
return isUglyNum[n-1];
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: