我理解的递归就是套娃,一个套一个,原本是一个很大的问题,但是在我们分块来处理的时候,每一个问题都有相似的地方,这样就可以来套娃了。
拿斐波那契数列来看,
int fibonacci(int n){
// 1.先写递归结束条件
if(n<=2){
return 1;
}
// 2.接着写等价关系式
return fibonacci(n - 1) + fibonacci(n - 2);
}
递归的代码很少,如果能完全把递归理解了,那么后面的东西也就水到渠成了。