1保持全局的观点
简化论:通过理解构成对象的某一部分就可以理解整个对象。
整体论:整体总是比构成它的部分总和更为重要。
在递归领域,简化论是理解的敌人,它总是妨碍你的理解。
如果你能保持全局的观点而非简化的视角,那么你会在理解递归程序上更加成功。
计算斐波那契数列:
递归采用:这种递归方法效率实在太低。
int fib( n )
{
if( n < 2)
{
return n;
}
else
{
return fib(n - 1) + fib(n - 2);
}
}
另一种递归方法:采用函数包装器。
int fib(n)
{
return additiveSequence(n,0,1);
}
int additiveSequence(int n,int t0, int t1)
{
if(n==0)return t0;
if(n==1)return t1;
return additiveSequence(n-1,t1,t0+t1);
}