加入收藏 行业资源交流与分享平台 果果文本库:办公学习如此简单!

热门搜索:

          登陆发布原创文章获取积分,可兑换精美礼品以及现金红包

4.10c++函数的递归调用

2015-11-24 22:13:10

在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归(recursive)调用。C++允许函数的递归调用。例如:

1. int f(int x)

2. {

3. int y, z;

4. z=f(y); //在调用函数f的过程中,又要调用f函数

5. return (2*z);

6. }

以上是直接调用本函数,见图4.9 4.10表示的是间接调用本函数。在调用f1函数过程中要调用f2函数,而在调用f2函数过程中又要调用f1函数。

  4.9   4.10

从图上可以看到,这两种递归调用都是无终止的自身调用。显然,程序中不应出现这种无终止的递归调用,而只应出现有限次数的、有终止的递归调用,这可以用if语句来控制,只有在某一条件成立时才继续执行递归调用,否则就不再继续。 包含递归调用的函数称为递归函数 【例4.10】有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人,他说是10岁。请问第5个人多大? 每一个人的年龄都比其前1个人的年龄大两岁。即: age(5)=age(4)+2 age(4)=age(3)+2 age(3)=age(2)+2 age(2)=age(1)+2 age(1)=10 可以用式子表述如下: age(n)=10   (n=1) age(n)=age(n-1)+2   (n>1) 可以看到,当n>1时,求第n个人的年龄的公式是相同的。因此可以用一个函数表示上述关系。图4.11表示求第5个人年龄的过程。

  4.11

可以写出以下C++程序,其中的age函数用来实现上述递归过程。

1. #include <iostream>

2. using namespace std;

3. int age(int);//函数声明

4. int main( )//主函数

5. {

6. cout<

1/3

关于本文
本文标题:4.10c++函数的递归调用 搜寻更多关于“4.10c++函
链接地址:https://www.ggdoc.com/6YCS5b2S5Ye95pWwYWdl0/MGY5MTgyNDg0YWZlMDRhMWIxNzFkZTg30
  果果文本库所有资源均来源于互联网,仅供网友学习交流,若侵犯了您的权益,请联系我们予以删除。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 果果手机版 - 网站客服客服 - 联系我们
copyright@ 2013-2018 GGdoc.com Inc. All Rights Reserved 果果文本库 版权所有 举报电话:0570-3085689 ;
经营许可证编号:浙ICP备18009749号-1
1453《z 703《A