关于递归
以下代码片内容为递归实现斐波拉契数列。
# 以斐波拉契数列的计算为例,考察递归与循环的转化
# 递归实现
def create_num_list(NumListCurr,MaxNum):
if max(NumListCurr)>MaxNum: # 递归结束条件
return NumListCurr
else: # 递归条件
M = len(NumListCurr)
NumAdd = NumListCurr[M-2] + NumListCurr[M-1]
NumListCurr.extend([NumAdd]) # 预先进行的一系列操作,更新数据
create_num_list(NumListCurr, MaxNum) # 使用更新后的数据再次调用函数
return NumListCurr # 函数返回
RecursionList = create_num_list([0,1],10)
print('\n','RecursionList=','\n',RecursionList)
# 循环实现
CycleList = [0,1]
MaxNum = 10
while max(CycleList)<10:
M = len(CycleList)
NumAdd = CycleList[M-1] + CycleList[M-2]
CycleList.extend([NumAdd]) #将需要的数据在更新后保存下来
print('\n','CycleList=','\n',CycleList)