杂谈-递归与尾递归

斐波那契数列之递归与尾递归实现

1,1,2,3,5,8,13,21 从第三个数开始每个数都是前两个数的和。

def fun_1(n):
if n < 3:
return 1
else:
# 从头往尾递归 会产生像二叉树一样指数展开
return fun_1(n-2)+fun_1(n-1)

def fun(n, i, j):
if n < 3:
return j
else:
# 尾递归 递归次数为线性
# print(n, i, j)
return fun(n-1, j, j+i)

if name == 'main':
n = int(input('请输入要的斐波那契数列n(33以上可以看到明显效果): '))

print('This is fun')
print(fun(n, 1, 1))

print('This is fun_1')
print(fun_1(n))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容