Recursive

def factorial(x):
  if x == 1:
    return 1
  else:
    return x * factorial(x -1)

factorial(3)

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

def sum(x):
  if x == 1:
    return 1
  else:
    return x + sum(x -1)

 sum(10)

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

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

Written on June 28, 2020