1. 程式人生 > >JAVA:醜數

JAVA:醜數

題目描述:只包含素因子2,3,5的數就是醜數。例如2,4,6,8,10都是醜數,預設第一個醜數是1。求第n個醜數。 思路:依次計算出醜數,設定三個指標,依次從小到大遍歷這些求出的醜數,將這些指標所指的數分別乘2、3、5,再比較大小,將小的放進佇列。

public static int getUglyNumber_Solution(int index){
        if(index==0)
            return 0;
        List<Integer> list=new ArrayList<Integer>();
        list.add(1
); int num2=0; int num3=0; int num5=0; while(list.size()<index){ int two=list.get(num2)*2; int three=list.get(num3)*3; int five=list.get(num5)*5; int min=Math.min(Math.min(two, three), five); if(min==two) num2++
; if(min==three) num3++; if(min==five) num5++; list.add(min); } return list.get(list.size()-1); }