写算法
判断一个数是不是丑数,
两类问题:
是,不是
丑数是什么特征?
满足:
1,n==1
2,n只能被2,3,5整除
![fe67c9d25d9e0de02618a2bdaf22bd0f.png](https://i-blog.csdnimg.cn/blog_migrate/b087d20237cd1ab13fa17a279736374c.png)
如果n是丑数,那么如果n可以整除2,n除以2的数,一定也是丑数。
这就是递归。
这就是迭代。
他们有共同点。
所以是相通的
def choushu(n:int):#输入是一个整数
while True:
if n==1:
return True
if n>1:
if (n%2==0):
n=n/2
continue
if (n%3==0):
n=n/3
continue
if (n%5==0):
n=n/5
continue
else:
return False
递归和迭代:
为什么可以转换?
迭代:
可以改变n
改变后的n,也是和之前的n,发生同样的逻辑(这就是和递归的连接点)
使得改变后的n趋近于初始值
递归:
def choushu_digui(n):
if n==1:
return True
if n>1:
if n%2==0:
print("hi")
return choushu_digui(n/2)
if n%3==0:
return choushu_digui(n/3)
if n%5==0:
return choushu_digui(n/5)
else:
return False