|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 初学者问个递归的问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
965
人关注过本帖
标题:
初学者问个递归的问题
只看楼主
加入收藏
kissyoume
等 级:
新手上路
帖 子:17
专家分:0
注 册:2008-8-1
结帖率:
0
楼主
收藏
问题点数:0 回复次数:8
初学者问个递归的问题
fun(int n,int *s)
{
int f1,f2;
if(n==1||n==2) *s=1;
else
{
fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
void main()
{
int x;
fun(6,&x);
printf("%d\n",x);
}
麻烦有没有老师跟我讲下 过程 我理解的比较乱 最后结果是8 但不知怎么来的
搜索更多相关主题的帖子:
递归
2010-09-12 13:57
举报帖子
使用道具
赠送鲜花
hahayezhe
来 自:湖南张家界
等 级:
贵宾
威 望:
24
帖 子:1386
专家分:6999
注 册:2010-3-8
第
2
楼
收藏
得分:0
在fun内下个断点
然后一步一步调式 查看堆栈
就很清楚了!
2010-09-12 14:00
举报帖子
使用道具
赠送鲜花
清风拂晓
来 自:火星
等 级:
蝙蝠侠
威 望:
1
帖 子:356
专家分:889
注 册:2010-8-13
第
3
楼
收藏
得分:0
void main()
{
int x;这里X没有初始化为0下不然结果是难预测的
fun(6,&x);
printf("%d\n",x);
}
清风拂暮(木)
2010-09-12 14:07
举报帖子
使用道具
赠送鲜花
A13433758072
来 自:广东潮州
等 级:
小飞侠
威 望:
1
帖 子:1182
专家分:2784
注 册:2010-7-22
第
4
楼
收藏
得分:0
fun(int n,int *s) { int f1,f2;定义整型变量 if(n==1||n==2)条件为真的就执行下面语句 *s=1; else否则就执行任务下面花括号里语句 { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } void main()从这开始 { int x;定义整型变量 fun(6,&x);调用函数,就是上面那函数 printf("%d\n",x);输出调用函数计算的结果 }
一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入, QQ群38490319
2010-09-12 14:19
举报帖子
使用道具
赠送鲜花
清风拂晓
来 自:火星
等 级:
蝙蝠侠
威 望:
1
帖 子:356
专家分:889
注 册:2010-8-13
第
5
楼
收藏
得分:0
这个一步一步讲以来挺多的
清风拂暮(木)
2010-09-12 20:13
举报帖子
使用道具
赠送鲜花
清风拂晓
来 自:火星
等 级:
蝙蝠侠
威 望:
1
帖 子:356
专家分:889
注 册:2010-8-13
第
6
楼
收藏
得分:0
先递归fun(n-1,&f1);得到*S1=1,即F1为1 再递归fun(n-2,&f2);得到F2为1 ,得到*S=1+1=2; 再递归fun(n-1,&f1);得到*S1=2,即F1为2;再递归fun(n-2,&f2);得到F2为2 ,得到*S=2+2=4;再递归fun(n-1,&f1);得到*S1=4,即F1为4;再递归fun(n-2,&f2);得到F2为4 ,得到*S=4+4=8;结束;这主要是fun(n-2,&f2);N要从6到2,所以相当要循环2次 ,再加本来的先递归fun(n-1,&f1);得到*S1=1,即F1为1 再递归fun(n-2,&f2);得到F2为1 ,得到*S=1+1=2;就可以得到*S=8了
清风拂暮(木)
2010-09-12 20:45
举报帖子
使用道具
赠送鲜花
sd2930357
等 级:
论坛游民
帖 子:19
专家分:28
注 册:2010-7-25
第
7
楼
收藏
得分:0
简单来说要得到一个真实的值要递归到fun(2,x)=fun(1,x)+f(0,x)=1,fun(1,x)=1
fun(3,x)=f(2,x)+fun(1,x)=2
fun(4,x)=fun(3,x)+fun(2,x)=2+1=3
fun(5,x)=fun(4,x)+fun(3,x)=3+2=5
fun(6,x)=fun(5,x)+fun(4,x)=5+3=8
所以结果为8
2010-09-12 22:32
举报帖子
使用道具
赠送鲜花
encounter
来 自:扬州
等 级:
职业侠客
威 望:
2
帖 子:150
专家分:359
注 册:2010-7-24
第
8
楼
收藏
得分:0
1,1,2,3,5,8,13..........
An=An-1+An-2
A1=A2=1
ping nbtstat netstat tracert nat at ftp telnet..................
2010-09-12 22:49
举报帖子
使用道具
赠送鲜花
kissyoume
等 级:
新手上路
帖 子:17
专家分:0
注 册:2008-8-1
第
9
楼
收藏
得分:0
懂了 谢谢各位老师
2010-09-13 14:39
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
初学者问个递归的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016038 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved