前言
这是一个递归的题目网上没有好的解释,这就发表一下自己的拙见。话不多说直接上代码
public class RecursionTest {
public static void main(String[] args){
Recursion recursion = new Recursion();
System.out.println(recursion.factorial(10));
}
}
class Recursion {
public int factorial(int num){
if(num == 0){
return 1;
} else if(num == 1){
return 4;
} else {
return 2 * factorial(num - 1) + factorial(num - 2);
}
}
}
总结
1. 运行结果:
2.我们要算的是:f(n+2)=2*f(n+1) + f(n)
其实就等价于:f(n)=2*f(n-1) + f(n-2)
3.递归就两点:①递归结束语;②递归体。在计算递归问题时,先用笔写一下,看看我们需要将这个问题怎么用算术来表达出来,再将手算的式子写成代码。