为了缩小问题规模,我们常常在一些问题中使用递归的方法
比如求n的阶乘,我们可以用递归算法解决
图1
分别用0,1,4测试
图2
结果如下:
图3
主函数的调用,会有独立的栈帧,如下图左(以n=4为例),当主函数中调用(图2)Fac(4)时,会沿着红线,从右自左调用,直到得出数据1,然后再自左至右传递值,得到Fac(4)的结果
图4
用递归的方法可以一层层缩小问题规模,达到化繁为简的目的,适用于每一层思路都和原来一样的问题
为了缩小问题规模,我们常常在一些问题中使用递归的方法
比如求n的阶乘,我们可以用递归算法解决
图1
分别用0,1,4测试
图2
结果如下:
图3
主函数的调用,会有独立的栈帧,如下图左(以n=4为例),当主函数中调用(图2)Fac(4)时,会沿着红线,从右自左调用,直到得出数据1,然后再自左至右传递值,得到Fac(4)的结果
图4
用递归的方法可以一层层缩小问题规模,达到化繁为简的目的,适用于每一层思路都和原来一样的问题