2020-2-23 Python学习
递归
谢尔宾斯基三角形,递归自拍
递归:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。(有函数调用和停止的环节 )
递归深度:sys模块
递归求阶乘:
一般写法:
>>> def jiechen(b):i=1a=1while not i==b:i=i+1a=a*iprint(a)>>> jiechen(5)
120
递归版本:
def factorial(n):if n==1:return 1else:return n*factorial(n-1)
斐波那契数列为例:
递归
>>> def fun(n):if n == 1 or n == 2:return 1else:return fun(n-1)+fun(n-2)a=fun(n)+a>>> fun(8)
21
迭代
>>> def fun1(n):n1 = 1n2 = 1n3 = 1while not (n-2)==0:n3=n1+n2n1=n2n2=n3n=n-1return n3>>> fun1(3)
2
>>> fun1(12)
144
- 十进制转换为二进制
def bzzb(n):a = ' 'if n == 0:return aelse:a = bzzb(n//2)return a+str(n%2)
print(bzzb(10))
递归理解:先通过递归达到中止条件,a = bzzb(n//2)相当于递归的进度(记录递归是否到达最总)才能进行return a+str(n%2)(即二进制个个位数的叠加)
a=[]
def bzzb(n):if n:a.append(n%10)bzzb(n//10)
bzzb(3652)
类似函数嵌套(后一个函数的参数与前一个参数变化有规律),定义域变换为值域,可以把递归排列开。:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

