返回第n個醜數

2021-07-02 14:11:32 字數 576 閱讀 1895

把只包含質因子2、3和5的數稱作醜數(ugly number),例如:2,3,4,5,6,8,9,10,12,15,等,習慣上我們把1當做是第乙個醜數。

寫乙個高效演算法,返回第n個醜數。

解法1: 判斷某個數是否為醜數,連續找到第n個醜數

#include using namespace std;

bool isugly(int num)

int nthugly(int n)

else

++x;

} return x - 1;

}int main()

解法2:在當前醜數里乘以2,3,5,找到最小的後續醜數新增到序列裡

#include using namespace std;

int minof3(int a, int b, int c)

long findugly(int n)

cout << ugly[n - 1];

delete ugly;

return 0;

}int main()

找到第N個醜數

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

求第N個醜數

原問題描述 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。這個題不是很難,基本上看完題就能想出解法,但是要想出時間複雜度為o n 的解法還是有點難度的。我最開始的解法時...

LeetCode Python 第n個醜數

挨個找的方法,效率比較低 def findkthugly k count 0 n 1 while true if isugly n count 1 if count k return n else n 1 def isugly number while number 2 0 number numbe...