递归是什么?
是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。
下面是个人理解:递归就是在函数内部调用自己的函数被称之为递归。
实例:
#直接调用自己:def func: print('from func') func Func #间接调用自己def foo: print('from foo') bar def bar: print('from bar') foo Foo #递归的实现:def age(n): if n == 1: return 18 return age(n-1)+2 print(age(5)) # age(5)=age(4)+2 第一次进入# age(4)=age(3)+2 第二次进入# age(3)=age(2)+2 第三次进入# age(2)=age(1)+2 第四次进入# age(1)=18 第五次进入,最后判断终止条件 # age(n)=age(n-1)+2 #n>1 递归终止条件# age(1)=18 #n=1 等于终止条件
递归的回溯与递推
递推:像上边递归实现所拆解,递归每一次都是基于上一次进行下一次的执行,这叫递推。回溯:则是在遇到终止条件,则从最后往回返一级一级的把值返回来,这叫回溯。
# 实例l =[1, 2, [3, [4, 5, 6, [7, 8, [9, 10, [11, 12, 13, [14, 15,[16,[17,]],19]]]]]]] def search(l): for item in l: if type(item) is list: search(item) else: print(item) search(l)
好啦,以上就是关于递推的全部内容啦,大家快来试试吧~