递归,编程的时候时常会遇到,所以很多时候,我都在想能不能把递归搞成一个公式一样的东西。功夫不负有心人,在查阅了相关书籍,回想高中数学,加上我的体会,中得到了一个公式一样的东西,应该确定的说是一般的思路:
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;
思路如此,希望高手不惜赐教