題目描述:把只包含質因子2、3和5的數稱作醜數(ugly number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。
思路:(1)直覺想法是考察每乙個數,如果它能被2整除,就一直讓2除;如果能被3除,就一直讓3除;如果能被5除,就一直讓3除,判斷最後結果是否為1,如果是,則為醜數,否則不是。
(2)只考慮醜數。如果乙個數為醜數,則滿足該數=(2^x)*(3^y)*(5^z)。定義醜數陣列,0位置為1,每次加入乘以三個值之後的最小值。
**一:
public class main
while(number % 3 == 0)
while(number % 5 == 0)
return (number == 1) ? true : false; }
//從1開始尋找第1500個醜數
public static int getuglynumber(int index)
int number = 0;
int uglyfound = 0;
while(uglyfound < index)
} return number;
}
**二:
public class solution
listlist = new arraylist();
list.add(1);
int m2 = 0, m3 = 0, m5 = 0, i2 = 0, i3 = 0, i5 = 0, min = 0;
while(list.size() < index)
if(min == m3)
if(min == m5)
} return list.get(index-1);
}}
《劍指offer》33 醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。c 實現 class solution return a index 1 python實現 coding utf 8 cl...
劍指offer 33 醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。通俗易懂的解釋 首先從醜數的定義我們知道,乙個醜數的因子只有2,3,5,那麼醜數p 2 x 3 y 5 z,換句話說乙個醜...
劍指offer33 醜數
題目描述 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。這裡講解的很詳細了。coding utf 8 class solution def getuglynumber ...