当编写递归例程的时候,关键是要牢记递归的四条基本法则:
1、基准情形。必须总有某些基准情形,它无须递归就能解出。
2、不断推进。对于那些需要递归求解的情形,每一次递归调用都必须要使求解状况朝接近基准情形的方向推进。
3、设计法则。假设所有的递归调用都能运行。
4、合成效益法则(compound interest rule)。在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作。比如,Fibonacci数列用递归来求第n项数,n越大,结果出的时间越久,好像第43项就需要很多时间。
PS:摘自数据结构与算法分析——C语言描述. 第2版. p.9;