| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 797 人关注过本帖
标题:[求助]各位大侠,请帮我指点这个程序!!!谢谢!!!
只看楼主 加入收藏
xinmo1975
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-4-14
收藏
 问题点数:0 回复次数:3 
[求助]各位大侠,请帮我指点这个程序!!!谢谢!!!

#include”stdafx.h”

#include<iostream.h>

int feven(int x);

int fodd(int x)

{

return feven(x-1)+3;

}

int feven(int x)

{

if(x= =0) return 0;

else return fodd(x-1)+5;

}

void main()

{

int g=16;

if(g%2= =0) cout<<feven(g)<<endl;

else cout<<fodd(g)<<endl;

}

这个程序的执行结果为:64

我知道的是: 这是一个间接递归调用的函数,在调用feven函数时,在feven函数中又要调用fodd函数,而在fodd函数中又要调用feven这个函数。

我不清楚的是: 执行结果为64,这个结果是怎么执行出来的呢???是什么样的一个执行过程???请各位大侠给予指点,在下将不胜感激!!!!!!拜托!!!!!!
搜索更多相关主题的帖子: return 
2005-04-18 12:20
newtonniu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-4-18
收藏
得分:0 
相当与+3+5加了8次 在加一个0就是+64了
2005-04-18 12:51
jdytz
Rank: 2
等 级:新手上路
威 望:3
帖 子:104
专家分:0
注 册:2005-4-24
收藏
得分:0 

#include”stdafx.h”

#include<iostream.h>

int feven(int x);

int fodd(int x)

{

return feven(x-1)+3;

}

int feven(int x)

{

if(x= =0) return 0;

else return fodd(x-1)+5;

}

void main()

{

int g=16;

if(g%2= =0) cout<<feven(g)<<endl;

else cout<<fodd(g)<<endl;

}

这个程序的执行结果为:64 谢谢你的帖子..我看了半个小时


``` 奔放潇洒活着我的自由
2005-04-24 16:12
jdytz
Rank: 2
等 级:新手上路
威 望:3
帖 子:104
专家分:0
注 册:2005-4-24
收藏
得分:0 

#include”stdafx.h”

#include<iostream.h>

int feven(int x);

int fodd(int x)//16

{

return feven(x-1)+3;

}

int feven(int x)

{

if(x= =0) return 0;

else return fodd(x-1)+5;

}

void main()

{

int g=16;

if(g%2= =0) cout<<feven(g)<<endl; else cout<<fodd(g)<<endl;

}

feven(16)==fodd(15)+5 fodd(15)==feven(14)+3 feven(14)==fodd(13)+5 .............................. 一直到fodd(1)==feven(0)+3=3 结果feven(16)=(5+3)*8


``` 奔放潇洒活着我的自由
2005-04-24 16:30
快速回复:[求助]各位大侠,请帮我指点这个程序!!!谢谢!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018442 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved