1. 程式人生 > >劍指offer-醜數

劍指offer-醜數

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-醜數