【Python】递归算法的奇思妙用

什么是递归?

递归是一种存在于多种编程语言的句式,它不属于编程软件特有的一种BIF,它可以被巧用来解决循环问题,但它又不属于循环,那么,本文来向你介绍Python中的递归!

从个简单的栗子开始!

这种问题一般我们用while循环或者for循环解决

for循环你可能会这样写

a = 0
for b in range(1,101):
    a+=b
print(a)

while 循环你可能会这样写

a = 0
b = 0
while a < 100:
    a+=1
    b+=a
print(b)

用了递归后…

def f(n):
    if n == 1:
        return 1
    else:
        return n + f(n-1)
        #函数内部也可以调用本身
print(f(100))
=====运行=====
>>>
5050

是不是很奇妙?仔细想一下,才会发现暗含的规律!

解剖上面代码

f(100)=100+f(99)
    f(99)=99+f(98)
        ……
           f(2)=2+f(1)
              f(1)=1

由此可见递归的基本句式是

def 函数名([参数]):
    if 条件:
        return [value]
    else:
        return [运算式]
print(函数名([参数]))
撰文不易,请尊重原创劳动成果!
© 版权声明
THE END
觉得不错的话,支持一下谢谢~
点赞74
分享
谈天说地 共1条
苏祁的头像-苏米云日记

昵称

取消
昵称表情代码图片