83 - 找到第n个丑数
        【摘要】     只包含2、3、5中的1个或多个因子的数称为丑数,要求按从小到大的顺序找到第n个丑数 
'''
2, 3, 5
6: 是丑数
14: 不是丑数,包含7
下一个丑数必定是数组的某一个丑数A * 2、B * 3、C * 5 中最小的值
M2, 之前的丑数*2都小于当前最大的丑数 之后的丑数*2都大于当前最大的丑数 M3、M5
'''
def getUglyNumber...
    
    
    
    只包含2、3、5中的1个或多个因子的数称为丑数,要求按从小到大的顺序找到第n个丑数
'''
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 = 1 while nextdex < index: minNum = min(res[t2] * 2, res[t3] * 3, res[t5] * 5) res.append(minNum) while res[t2] * 2 <= minNum: t2 += 1 while res[t3] * 2 <= minNum: t3 += 1 while res[t5] * 2 <= minNum: t5 += 1 nextdex += 1 return res[nextdex - 1]
print(getUglyNumber(10))
  
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 
512
  
 - 1
 
文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。
原文链接:ruochen.blog.csdn.net/article/details/105150771
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)