递归算法
直接或者间接调用自身的算法称为递归。
用函数自身给出定义的函数称为递归函数。
使用递归技术往往使得函数的定义和算法的描述简洁且易于理解,如:数据结构中的二叉树,由于本身固有的递归特性,特别适合用递归的方式描述。
阶乘函数
递归定义:
n!={1n(n−1)n=0n>0
n的定义域为:非零负整数。
算法实现(Java):
public static int factorial(int n)
{
if(n==0) return 1;
return n*factorial(n-1);
}
参考资料:《算法设计与分析》(第三版)王晓东编著