題目:把只包含質因子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個醜數。分析 使用兩個佇列乙個存放節點,乙個存放值。先將根節點加入到佇列中,然後遍歷佇列中的元素,遍歷過程中,訪問該元素的左...