递归方法:一个方法体内调用它自身。
即方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。
递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。
如下是几种递归方法的例子
递归方法 1.计算1-n 的和
//递归方法 1.计算1-n的和
public int getSum(int n){
if(n==1){
return 1;
}else{
return n + getSum(n-1);
}
}
递归方法 2.计算1-n的乘积
//递归方法 2.计算1-n的乘积
public int getSum1(int n){
if(n==1){
return 1;
}else {
return n*getSum(n-1);
}
}
递归方法 3:已知有一个数列:f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n),
其中n是大于0的整数,求f(10)的值。
//递归方法 3:已知有一个数列:f(0) = 1,f(1) = 4,
//f(n+2)=2*f(n+1) + f(n),
//其中n是大于0的整数,求f(10)的值。
public int f(int n){
if(n==0){
return 1;
}else if(n==1){
return 4;
}else{
return 2*f(n-1)+f(n-2);
}
}
递归方法 4.波斐那契数列 该数列中 除了前两个数为1 后面的数都等于前面两个数之和
前十一个数1 1 2 3 5 8 13 21 34 55 89
//递归方法 4.波斐那契数列
//该数列中 除了前两个数为1 后面的数都等于前面两个数之和
//前十一个数1 1 2 3 5 8 13 21 34 55 89
public int boFeiNaQiArray(int n){
if(n==1){
return 1;
}else if(n==2){
return 1;
}else return boFeiNaQiArray(n-1)+boFeiNaQiArray(n-2);
}



