出场人物介绍
小美:小学4年级学生,参加了学校的编程兴趣小组,已经了解了Python语言的基本语法,能够看懂一些简单的程序。她做事风风火火,对所有的事情都很好奇,喜欢打破砂锅问到底,是一个叫人又爱又恨的小丫头。
阿福:一个酷爱编程的8年级男生。大家都说他长得像国宝大熊猫,动作缓慢,憨态可掬。他做事情确实够慢的,连说话也慢条斯理,可是他一点也不担心,他常常说:“慢就是快,只要坚持下去,蜗牛也能爬上金字塔。”
古老师:虽然年近不惑,但依然对生活充满热情。“爱生活爱运动”是他的人生信条,和孩子们一起编程是他最大的乐趣。他神出鬼没,总是在孩子们最需要帮助的时候出现。当然,你也不能动不动就找古老师,因为他很忙,非常非常忙。所以,遇到问题还是自己先思考吧。
“Python算法之旅”微信群等着你扫码加入“Python算法之旅”微信群,和斌哥面对面交流,更多资料和更有趣的话题等你一起来分享。
算法进化历程之丑陋数
小美:上次古老师教给我们以空间换时间的方法真是巧妙,用它来解题可以提高不少效率呢。
阿福:是的,以空间换时间换时间是一种常用技巧,在很多地方都有用到。今天这里有一道数学题目,你看看会不会做?
题目1:
丑陋数。丑陋数是指质因数只包含2,3,5的自然数,例如前十个丑陋数依次为:1, 2, 3, 4, 5, 6, 8, 9, 10, 12。
给定一个自然数n (n <= 1500),请你求出对应的第n个丑陋数。
函数功能:丑陋数是指质因数只包含2,3,5的自然数,输出第n个丑陋数。
函数名:ugly_number(n:int)-> int
参数表:n-- 一个自然数。
返回值:第n个丑陋数。
示例1:n=2,则返回2;
示例2:n=7,则返回8;
示例3:n=11,则返回15。
小美:丑陋数?这名字不好听,不过题目倒不难,我用最简单的枚举算法就能解决它。
代码1:
def ugly_number(n