什么情况下要用到递归算法?C语言中的
什么情况下要用到递归算法?C语言中的.
我看到递归算法就头疼. 看不懂
答案或建议:
在一个子程序(过程或函数)的定义中又直接或间接地调用该子程序本身,称为递归。
递归是一种非常有用的程序设计方法。用递归算法编写的程序结构清晰,具有很好的可读性。
递归算法的基本思想是:把规模大的、较难解决的问题变成规模较小的、易解决的同一问题。规模较小的问题又变成规模更小的问题,并且小到一定程度可以直接得出它的解,从而得到原来问题的解。
利用递归算法解题,首先要对问题的以下三个方面进行分析:
一、决定问题规模的参数。需要用递归算法解决的问题,其规模通常都是比较大的,在问题中决定规模大小(或问题复杂程度)的量有哪些?把它们找出来。
二、问题的边界条件及边界值。在什么情况下可以直接得出问题的解?这就是问题的边界条件及边界值。
三、解决问题的通式。把规模大的、较难解决的问题变成规模较小、易解决的同一问题,需要通过哪些步骤或等式来实现?这是解决递归问题的难点。
把这些步骤或等式确定下来。 把以上三个方面分析好之后,就可以在子程序中定义递归调用。
记得C里面有一个汉诺塔,就是非用递归才能解决的一个问题!可以仔细理解一下哦!
转载链接:http://www.baikewenda.com/tech/dev/6/9/a1932105.htm