丑數

'''
題目:我們把只包含因子2、3和5的數稱作丑數。求按從小到大的順序的第1500個丑數。1為第一個丑數。
'''

def get_ugly_number(count):
    if count <= 0:
        return 0;
    ugly_number_list = [1]
    multiply2 = 0
    multiply3 = 0
    multiply5 = 0
    while len(ugly_number_list) < count:
        m = min((ugly_number_list[multiply2] * 2, ugly_number_list[multiply3] * 3, ugly_number_list[multiply5] * 5))
        ugly_number_list.append(m)
        while ugly_number_list[multiply2] * 2 <= ugly_number_list[-1]:
            multiply2 += 1
        while ugly_number_list[multiply3] * 3 <= ugly_number_list[-1]:
            multiply3 += 1
        while ugly_number_list[multiply5] * 5 <= ugly_number_list[-1]:
            multiply5 += 1
    print ugly_number_list
    return ugly_number_list[-1]
if __name__ == '__main__':

    print get_ugly_number(1500)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 題目:把只包含因子2、3和5的數稱作丑數(Ugly Number)。例如6、8都是丑數,但14不是,因為它包含因子...
    FlyElephant閱讀 308評論 0 0
  • 題目描述把只包含因子2、3和5的數稱作丑數(Ugly Number)。例如6、8都是丑數,但14不是,因為它包含因...
    NoFacePeace閱讀 189評論 0 0
  • 此題說明了: 可以嘗試用空間換取時間 像丑數這種越來越稀疏的問題,越到后面越體現出算法優化的重要性 《劍指offe...
    抬頭挺胸才算活著閱讀 294評論 0 0
  • 題目描述把只包含因子2、3和5的數稱作丑數(Ugly Number)。例如6、8都是丑數,但14不是,因為它包含因...
    quiterr閱讀 299評論 0 0
  • 南宋的太陽滅了。 她擁擠在熙熙攘攘的人群里,倉惶間回望紅漆的朱門,日光下的飛塵模糊了視線,遠處的硝煙彌漫著攀上天際...
    連雨不知春去閱讀 220評論 0 0