劍指offer 34 醜數

2021-07-03 10:58:00 字數 382 閱讀 8509

只包含因子2/3/5的數稱為醜數。

方法1:逐個判斷每個整數是不是醜數

方法2:建立陣列儲存已經找到的醜數,用空間換時間的方法

每乙個醜數都是前面的醜數乘以2、3、5得到的

已有醜數中最大醜數為m,下乙個醜數應該是已知醜數分別乘以2、3、5的第乙個大於m的數,記錄,每個乘以2、3、5第乙個大於m的位置更新。

#includeusing namespace std;

bool isugly(int num)

int getuglynumber1(int n)

{ if(n<=0)

return 0;

int uglynum=0;

int num=0;

while(uglynum

劍指Offer 34 醜數

把只包含因子2 3和5的數稱為醜數,求從小到大的順序的第1500個數。1是第乙個醜數。乙個醜數可以表示成2m3 n5 k2 m3 n5 k 2m3n5k 其中,m n k為自然數zzz。醜數從小到大的順序其實是m n k這三個數中的其中乙個數加一。生成過程 陣列res初始化,儲存了第乙個元素res ...

劍指offer 34 醜數

把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。看到這個問題的時候可以這樣想 解題思路 因為乙個醜數隻包含質因子2 3和5,也就是說乙個醜數一定由另乙個醜數乘以2或者乘以...

《劍指offer》 34 醜數的判斷與查詢

題目 我們把只包含因子2,3,5的數稱為醜數 ugly number 求按從小到大的順序的第1500個醜數。例如6,8都是醜數,但14不是,因為它包含因子7.習慣上我們把1當作第乙個醜數。方案一 所謂乙個數m是n的因子的意思是n能被m整除。那麼根據醜數的定義,醜數只能被2,3,5整除,如果乙個數能被...