码迷,mamicode.com
首页 > 编程语言 > 详细

Python递归

时间:2020-01-12 09:45:35      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:mic   range   app   info   int   end   alt   highlight   png   

def recursion(i):
    if i / 2 > 1:  # 递归出口
        re = recursion(i / 2)
        print(‘返回值:‘, re)
    print(‘上层递归值:‘, i)
    return i


recursion(10)
# 上层递归值: 1.25
# 返回值: 1.25
# 上层递归值: 2.5
# 返回值: 2.5
# 上层递归值: 5.0
# 返回值: 5.0
# 上层递归值: 10

# 斐波那契数列:就是前两个数的和为后一个数的值(1,1,2,3,5,8,13...)
# 方式一
lis = []
for i in range(20):
    if i == 0 or i == 1:  # 第1,2项 都为1
        lis.append(1)
    else:
        lis.append(lis[i - 2] + lis[i - 1])  # 从第3项开始每项值为前两项值之和
print(lis)  # [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]

# 方式二
def recursion2(n):
    if n == 1 or n == 2:
        return 1
    else:
        return recursion2(n - 1) + recursion2(n - 2)


for i in range(1, 21):
    ret = recursion2(i)
    print(ret, end=" ")  # 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765

技术图片

 

 

  

Python递归

标签:mic   range   app   info   int   end   alt   highlight   png   

原文地址:https://www.cnblogs.com/yzg-14/p/12181768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!