劍指offer-醜數
阿新 • • 發佈:2018-04-12
index num off while AC static ++ ger public
題目描述:把只包含因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
思路:先進行了存儲
ac代碼:
1 import java.util.ArrayList; 2 public class Solution { 3 static ArrayList<Integer>list=new ArrayList<Integer>(); 4 static { 5 for(int i=0;i<7;i++) 6 list.add(i);7 for(int i=8;i<=1000000000;i++) 8 { if(isCh(i)) 9 list.add(i); 10 } 11 } 12 public int GetUglyNumber_Solution(int index) { 13 return list.get(index); 14 } 15 static boolean isCh(int n){ 16 while(n%2==0||n%3==0||n%5==0){ 17 if(n%2==0) 18 n=n/2; 19 if(n%3==0) 20 n/=3; 21 if(n%5==0) 22 n/=5; 23 } 24 if(n==1) 25 return true; 26 return false; 27 } 28 }
劍指offer-醜數