計算第N個醜數

2021-09-26 23:05:41 字數 470 閱讀 7796

牛客網上劍指offer上的題目:

把只包含質因子2、3和5的數稱作醜數(ugly number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。

解法1:算是一種很暴力的方法,從第乙個醜數開始一次遞加,直到滿足n的要求,但是很不幸,超時了,執行速度很慢,但是從中也能學到點東西,比如,如何判讀乙個數是否為醜數。

public class test1 

public int getuglynumber_solution(int index)

int count=1;

int k=integer.max_value;

for(int i=2;i解法2:算是對題目的進一步分析,t通過醜數的性質進行醜數的排序,放進陣列中進行選擇

public class solution

}

計算第N個醜數 Ugly Number

題目描述 包含質因子2 3和5的數稱作醜數。例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。按從小到大的順序求第n個醜數 題目分析 質因子包含2 3 5三個中任意乙個或者多個 而且題目明確給出1為最小的醜數 因此可以從1開始,對後面的數依次乘以2 3 5.比如乙個...

返回第n個醜數

把只包含質因子2 3和5的數稱作醜數 ugly number 例如 2,3,4,5,6,8,9,10,12,15,等,習慣上我們把1當做是第乙個醜數。寫乙個高效演算法,返回第n個醜數。解法1 判斷某個數是否為醜數,連續找到第n個醜數 include using namespace std bool ...

找到第N個醜數

把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。找到第n個醜數 方法1 存放num之前所有元素是否是醜數的flag int getuglynumber solution in...