'''
2, 3, 5
6: 是醜數
14: 不是醜數,包含7
下乙個醜數必定是陣列的某乙個醜數a * 2、b * 3、c * 5 中最小的值
m2, 之前的醜數*2都小於當前最大的醜數
之後的醜數*2都大於當前最大的醜數
m3、m5
'''def
getuglynumber
(index)
:if index <1:
return
0 res =[1
] t2 = t3 = t5 =
0 nextdex =
1while nextdex < index:
minnum =
min(res[t2]*2
, res[t3]*3
, res[t5]*5
)while res[t2]*2
<= minnum:
t2 +=
1while res[t3]*2
<= minnum:
t3 +=
1while res[t5]*2
<= minnum:
t5 +=
1 nextdex +=
1return res[nextdex -1]
print
(getuglynumber(10)
)
512
84 - 哪乙個小朋友不用表演節目 找到第N個醜數
把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。找到第n個醜數 方法1 存放num之前所有元素是否是醜數的flag int getuglynumber solution in...
找到第1500個醜數
把只包含質因子2 3和5的數稱作醜數。例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第1500個醜數。暴力的一點的方法,可以從1開始遍歷,依次判斷是否是醜數,如果是醜數,計數器 1,當計數器加到1500的時候,這個數字就是醜數了.void v...
返回第n個醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如 2,3,4,5,6,8,9,10,12,15,等,習慣上我們把1當做是第乙個醜數。寫乙個高效演算法,返回第n個醜數。解法1 判斷某個數是否為醜數,連續找到第n個醜數 include using namespace std bool ...