标题:[求助]各位大侠,请帮我指点这个程序!!!谢谢!!!
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-15967-1-1.html




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

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