【Java基础】递归方法
1.计算1-n之间所有自然数的和
public int getSum(int n){
if (n==1){
return 1;
}else {
return n+getSum(n-1);
}
}
2.计算1-n之间所有自然数的乘积,即n的阶乘:n!
public int getMultiply(int n){
if (n==1){
return 1;
}
return n*getMultiply(n-1);
}
3.已知一个数列
已知一个数列:f(0) = 1,f(1) = 4,f(n+2)=2×f(n+1) + f(n),
其中n是大于0的整数,求f(10)的值。
直接return f(n+2)-2×f(n+1)
是错的,会报栈溢出。
设n+2 = t
f(n+2) = 2×f(n+1) + f(n),转化为
f(t) = 2×f(t-1)+f(t-2)
public int getFTen(int n){
if (n==0){
return 1;
}else if (n==1){
return 4;
}else {
return 2*getFTen(n-1)+getFTen(n-2);
}
}