首页 理论教育 VisualBasic案例化程序设计:过程递归调用

VisualBasic案例化程序设计:过程递归调用

时间:2023-10-20 理论教育 版权反馈
【摘要】:一个过程直接或间接调用过程本身,就称为过程的递归调用;采用递归方法来解决问题时,必须符合以下两个条件。有一个明确的结束递归的条件,否则过程将永远“递归”下去。使用过程的递归调用是指一个过程直接或间接地调用其自身。直接递归过程不断地调用其本身,而间接递归会调用两个或更多的过程,这样对内存占用是巨大的,所以,在递归中应尽量少用过程级变量。可以想象,递归调用的过程可能像一个无底深渊,永远不能返回。

VisualBasic案例化程序设计:过程递归调用

一个过程直接或间接调用过程本身,就称为过程的递归调用;采用递归方法来解决问题时,必须符合以下两个条件。

(1)可以把要解的问题转化为一个新的问题,而这个新的问题的解法仍与原来的解法相同。

(2)有一个明确的结束递归的条件(终止条件),否则过程将永远“递归”下去。

使用过程的递归调用是指一个过程直接或间接地调用其自身。

下面是直接递归的例子。

【案例6-9】采用递归方法求n!(n>0)

【案例操作】(www.xing528.com)

可用下列递归公式。

说明:当n>1时,在Fac过程中调用Fac过程,然后n减1,再次调用Fac过程,这种操作一直持续到n=1为止。例如,当n=3时,求Fac(3)变成求3*Fac(2),求Fac(2)变成求2*Fac(1),而Fac(1)为1,递归结束。以后再逐层返回,递推出Fac(2)及Fac(3)的值。

在某次调用Fac过程时并不是立即得到Fac(n)的值,而是一次又一次地进行递归调用,到Fac(1)时才有确定的值,然后通用过程逐层返回中依次算出Fac(2)、Fac(3)的值。

★注意:递归过程可以简化程序,但一般不能提高程序的执行性能。直接递归过程不断地调用其本身,而间接递归会调用两个或更多的过程,这样对内存占用是巨大的,所以,在递归中应尽量少用过程级变量

可以想象,递归调用的过程可能像一个无底深渊,永远不能返回。在一个过程进行递归调用时,每一次调用它本身,就和调用一个新的过程一样,它的所有的局部变量都要在内存中重新建立一份,直到耗尽系统资源并出现“堆栈溢出错误”为止。所以说,无意识地使用递归过程是极易出错的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈