python之递归(斐波那契数列)与迭代

 对于较大的计算来说,迭代不如递归计算速度快,并且可以说非常慢

但是迭代对于较小的运算又比递归巧妙

# 迭代方法
def slowsnail(x):
    am = [1, 1]
    if x < 0:
        print('输入错误!!!')
    elif x == 1 or x == 2:
        print('1')
    elif x > 2:
        for i in range(0, x - 2):
            b = am[i] + am[i + 1]
            am.append(b)
        print(am)
        return am[x - 1]


number = int(input('输入一个整数:'))
a = slowsnail(number)
print(a)


# 递归
def funcation(x):
    if x < 0:
        print('输入错误!!!')
    elif x == 1 or x == 2:
        return 1
    elif x > 2:
        return funcation(x - 1) + funcation(x - 2)


number = int(input('输入一个整数:'))
a = funcation(number)
print(a)

递归的原理如图所示:

posted @ 2022-12-12 16:14  放氮气的蜗牛  阅读(47)  评论(0编辑  收藏  举报  来源