递归
在计算机程序中,描述迭代的一种方式是使用循环,比如while和for。另一种完全不同的迭代实现方式就是递归。
递归是一种技术,这种技术通过一个函数在执行过程中一次或者多次调用其本身。少部分编程语言是不明确支持循环结构,而是直接依靠递归来表示迭代。但是大多数现代编程语言都通过和传统函数调用相同的机制支持函数的递归调用。当函数的一次调用需要进行递归调用时,该调用被挂起,直到递归调用完成。
例子:阶乘
n >= 1 时,n! = n*(n-1)! ;
def factorial(n):
if n == 0:
return 1
elif n > 0:
return n*factorial(n-1)