递归的一般方法

递归,编程的时候时常会遇到,所以很多时候,我都在想能不能把递归搞成一个公式一样的东西。功夫不负有心人,在查阅了相关书籍,回想高中数学,加上我的体会,中得到了一个公式一样的东西,应该确定的说是一般的思路:

 

1。考虑特殊情况。

记得高中学习数列的时候,时常先考虑n=1这个特殊情况,嘎嘎~~

2。观察倒数第二步的情况。

数学里,我们时常会考虑n-1的情况。

3。最后一步与倒数第二步之间的关系。

利用n-1来求解n,把n-1看成一个整体,考虑它与n的关系。

 

于是我们可以得到一个更为一般的Delphi程序:

 

procedure DoRecursive(......)

begin

   if  测试特殊情况 then

   begin

      没有使用递归而得到了一个结果

   end

   else

   begin

       将原始问题分解为若干个与原始问题结构相同的子问题;

       递归调用子程序解决各个子问题;

       组合子问题的结果为原始问题的解;

   end;

end;

 

思路如此,希望高手不惜赐教

 

 

posted on 2010-11-23 20:22  Supper  阅读(414)  评论(2编辑  收藏  举报

导航