| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 827 人关注过本帖
标题:求教一个递归的问题
只看楼主 加入收藏
fcyvhk
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-7-14
结帖率:100%
收藏
 问题点数:0 回复次数:4 
求教一个递归的问题
#include<stdio.h>
int f(int n)
{ if(n==1)return 1;
  else return f(n-1)+1;}
main()
{  int i,j=0;
     for(i=1;i<3;i++)j+=f(i);
     printf("%d\n",j);
}


为什么运行出来是3,我不理解难道不是1+2+3=6?
搜索更多相关主题的帖子: 递归 
2008-09-13 05:47
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 
for(i=1;i<3;i++)
只循环了2次,所以是f(1)+f(2) = 3

只有想不到,没有做不到
2008-09-13 08:01
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
收藏
得分:0 
#include<stdio.h>
int f(int n)
{ if(n==1)return 1;
  else return f(n-1)+1;}
main()
{  int i,j=0;
     for(i=1;i<=3;i++)
     j+=f(i);
     printf("%d\n",j);
}

[[it] 本帖最后由 小小熊宝宝 于 2008-9-13 08:57 编辑 [/it]]

欢迎加入C语言交流群:43287755
2008-09-13 08:56
jianyitianxia
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-8-28
收藏
得分:0 
把i改成4也可以,结果是3是只循环了2次
2008-09-13 09:55
fcyvhk
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-7-14
收藏
得分:0 
......明白了 ,谢谢楼上的几位,我太粗心了`
2008-09-13 15:12
快速回复:求教一个递归的问题
数据加载中...
 
   



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

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