Post

递归

1
2
3
4
5
6
7
def factorial(x):
  if x == 1:
    return 1
  else:
    return x * factorial(x -1)

factorial(3)

以上是使用递归计算阶乘的例子;

1
2
3
4
5
6
7
def sum(x):
  if x == 1:
    return 1
  else:
    return x + sum(x -1)

 sum(10)

以上是使用递归计算1到某个正整数所有数字相加值的例子;

《图解算法》中提到要理解递归的概念,首先要理解栈的概念;程序中函数内部还有函数,这种调用会将外层未执行完的代码存储到栈中;栈是先进后出的数据结构;递归会不断调用自己,不断的入栈,直到满足基线条件,然后持续出栈。

This post is licensed under CC BY 4.0 by the author.