剑指offer 丑数
题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 题目分析 这个题目其实是素数筛的变种问题,只要按顺序拿出所有的丑数就可以了。 java代码 public int GetUglyNumber_Solution ( int index ) { if ( index <= 0 ) { return 0 ; } ArrayList < Integer > arrayList = new ArrayList < > ( ) ; arrayList . add ( 1 ) ; int N = 10000 ; int i2 = 0 ; int i3 = 0 ; int i5 = 0 ; int temp = 0 ; for ( int i = 0 ; i < N ; i ++ ) { int x2 = arrayList . get ( i2 ) ; int x3 = arrayList . get ( i3 ) ; int x5 = arrayList . get ( i5 ) ; temp = Math . min ( x2 * 2 , Math . min ( x3 * 3 , x5 * 5 ) ) ; if ( temp == x2 * 2 )