| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 301 人关注过本帖
标题:[求助]各位大侠,请帮我指点这个程序!!!谢谢!!!
收藏  订阅  推荐  打印 
xinmo1975
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2005-4-14
[求助]各位大侠,请帮我指点这个程序!!!谢谢!!!

#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,这个结果是怎么执行出来的呢???是什么样的一个执行过程???请各位大侠给予指点,在下将不胜感激!!!!!!拜托!!!!!!
2005-4-18 12:20
newtonniu
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2005-4-18

相当与+3+5加了8次 在加一个0就是+64了
2005-4-18 12:51
jdytz
Rank: 2
等级:注册会员
威望:3
帖子:104
积分:1190
注册:2005-4-24

#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-4-24 16:12
jdytz
Rank: 2
等级:注册会员
威望:3
帖子:104
积分:1190
注册:2005-4-24

#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-4-24 16:30
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.074398 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved