每日一道演算法題 尋找醜數

2021-06-27 09:08:38 字數 511 閱讀 8390

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

解題思路:第一種方法,暴力解法,從數字1開始遍歷,一直找到第1500個醜數為止,這種窮舉的思路是最簡單的,效率也是最低的。**如下:

#include using namespace std;

bool isugly(int n)

while (n % 3 == 0)

while (n % 5 == 0)

return (n == 1)?true:false;

}int ugly_counter(int counter)

int count = 0;

int uglyfound = 0;

while (uglyfound < counter)

}return count;

}int main()

每日一道演算法題 尋找醜數

題目 我們把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第1500個醜數。分析 尋找乙個數是不是滿足某種數 質數,水仙數 等,最簡單的方法就是遍歷,對於任意乙個醜數必定可以寫成2 m ...

每天一道演算法題19 尋找醜數

原文 題目 我們把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8 都是醜數,但 14不是,因為它包含因子 7。習慣上我們把 1當做是第乙個醜數。求按從小到大的順序的第 1500 個醜數。分析 這是一道在網路上廣為流傳的面試題,據說google曾經採用過這道題。所謂乙個數m是另乙...

每天一道演算法題 醜數

題目描述 把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。分析 使用兩個佇列乙個存放節點,乙個存放值。先將根節點加入到佇列中,然後遍歷佇列中的元素,遍歷過程中,訪問該元素的左...