递归
递归定义:
递归是指函数的定义中又调用函数自身的方法。
例题
求n(n为正整数)的阶乘
int fun(int n){
if(n==1) {
return 0;
}
else {
return (fun( n-1)*n);
}
}
这里需要注意的是递归问题的求解过程一般都需要返回值,在递归问题中没有返回值,会导致语法错误。
何时使用递归方法
1.定义是递归的,例如求阶乘和斐波那契数列
2.数据结构是递归的,如单链表
3.求解问题的方法是递归的,如梵塔问题
递归模型
递归模型分为递归体和递归终结条件,两者缺一不可。
int fun(int n){
if(n==1) {
return 0;
}
else {
return (fun( n-1)*n);
}
}
在这个简单的例子中,递归体就是 (fun(n-1)*n),终结条件是 if(n==1).
递归的执行过程
常见递归思想的例题
1.求n阶乘
int fun(int n){
if(n==1