題目來自劍指offer
題目:
題目換句話說:醜數就是連續除以2,3,5,之後商為1的數.
**:
bool isuglynum(int nnum)
//消除因子3
while (nnum % 3 == 0)
//消除因子5
while (nnum % 5 == 0)
if (nnum == 1)
else
}
題目思路:醜數乘以2,3,5後仍是醜數。
具體來說:根據現有醜數,每次擴充套件乙個醜數。
(1)使用三個指標ncurone,ncurtwo,ncurthree用來分別產生乘以2,3,5後的候選醜數。
(2)之後取三個候選醜數的最小值,作為本次擴充套件的醜數。
(3)讓產生的候選醜數等於本次擴充套件醜數的指標都往前走一步。
注意:三個指標總是指向其待擴充套件的醜數
。**:
#include using namespace std;
const int size = 10000;
int min(int x,int y,int z)
else //y>x,x>=z
}else
else //x>y,y>z
}}int uglynum(int nindex)
if (narrugly[ncurthree] * 3 == ncurugly)
if (narrugly[ncurfive] * 5 == ncurugly)
}return ncurugly;
}int main()
{ cout<
Leetcode每日一題 264 醜數 II
給你乙個整數 n 請你找出並返回第 n 個 醜數 醜數 就是只包含質因數 2 3 和 或 5 的正整數。示例 1 輸入 n 10 輸出 12 解釋 1,2,3,4,5,6,8,9,10,12 是由前 10 個醜數組成的序列。示例 2 輸入 n 1 輸出 1 解釋 1 通常被視為醜數。很明顯,判斷每乙...
每日一題 劍指 Offer 49 醜數
tag 動態規劃 小根堆 難易程度 中等 題目描述 我們把只包含質因子 2 3 和 5 的數稱作醜數 ugly number 求按從小到大的順序的第 n 個醜數。示例 輸入 n 10 輸出 12 解釋 1,2,3,4,5,6,8,9,10,12 是前 10 個醜數。注意 1.1是醜數 2.n 169...
每日一題 劍指 Offer 49 醜數
tag 動態規劃 小根堆 難易程度 中等 題目描述 我們把只包含質因子 2 3 和 5 的數稱作醜數 ugly number 求按從小到大的順序的第 n 個醜數。示例 輸入 n 10 輸出 12 解釋 1,2,3,4,5,6,8,9,10,12 是前 10 個醜數。注意 1.1是醜數 2.n 169...