| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 814 人关注过本帖
标题:求解一个函数的运算过程
只看楼主 加入收藏
bayfish
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-9-1
结帖率:100%
收藏
 问题点数:0 回复次数:3 
求解一个函数的运算过程
fun(int x)
{
      int p;
      if(x==0||x==1)return(3);
      p=x-fun(x-2);
      return p;
}
main()
{
      printf("%d\n",fun(7));
}

我想知道一下为什么运算结果是2。
我算的是x=7满足条件所以执行p=x-fun(x-2);
1、x=7然后p=7-fun(5)
2、x=5然后p=5-fun(3)
3、x=3然后p=3-fun(1)
4、x=1然后就不满足条件了然后return(3)
我想知道这时候3应该怎么return,按照我现在的错误算法得不到最后2的结果,希望知道最后返回函数值3之后计算机是怎么算出2的???
搜索更多相关主题的帖子: 函数 求解 运算 
2008-11-10 23:22
zhuzhetian
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-10
收藏
得分:0 
1、x=7然后p=7-fun(5)
2、x=5然后p=5-fun(3)
3、x=3然后p=3-fun(1)

fun(7) = 7-fun(5);
fun(5) =  5-fun(3);
fun(3)= 3-fun(1);
fun(1) = 3
带入上边,就可以得对2
2008-11-11 14:01
京广铁路
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2008-11-3
收藏
得分:0 
函数的递归调用问题,函数值往回推,新手望各位大虾指点
2008-11-11 14:27
scheelite
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-11-5
收藏
得分:0 
f(7)
=7-f(5)
=7-(5-f(3))
=2+(3-f(1))
=5-3
=2


fun(int x)
{
     
      if(x==0||x==1) return(3);
        return(x-fun(x-2));
      
}

[[it] 本帖最后由 scheelite 于 2008-11-11 14:59 编辑 [/it]]
2008-11-11 14:58
快速回复:求解一个函数的运算过程
数据加载中...
 
   



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

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