复习

时间:2019-08-29
本文章向大家介绍复习,主要包括复习使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

递归

超过最大递归深读限制会报错。

只要写递归函数,必须要有结束条件。

返回值

不要只看到return就认为已经返回了,要看返回操作是在递归第几层的时候发生的。然后返回给了谁。

如果不是返回最外层的函数,调用者接收不到。

需要在分析,看如何把结果返回回来。

作业

斐波那契,问第n个斐波那契数是多少?

def fib(n):
    if n ==1 or n ==2:
        return 1
    else:
        return fib(n-1) + fib(n-2)
print(fib(9))
View Code

注意,在写递归是应避免调用双递归。因为递归调用的越多,会使计算量越大。因为计算机会做很多重复功浪费时间。

def fib(n):
    if  n ==2:
        return 1,1
    else:
        a,b = fib(n-1)
        return b,a+b
print(fib(9))
View Code

阶乘的实现

def func(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n*func(n-1)
print(func(5))
View Code

原文地址:https://www.cnblogs.com/zly9527/p/11432543.html