鱼C论坛

 找回密码
 立即注册
查看: 3967|回复: 9

求解释结果为什么是8

[复制链接]
发表于 2012-3-22 11:13:43 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>
  fun(int k,int *p)
{
   int a,b;
   if(k==1||k==2)
    *p=1;
   else
   {
     fun(k-1,&a);
  fun(k-2,&b);
  *p=a+b;
   }
}
void main()
{
   int x;
   fun(6,&x);
   printf("%d\n",x);
}解释一下,到每一步最好,谢谢

最佳答案

查看完整内容

逆向思考 //调用 f(1,&a), p1 = 1 //调用 f(2,&a), p2 = 1 //调用f(3,&a), p3 = p1 + p2 = 2; //调用f(4,&a) ,接着会调用,f(3,&a),f(2,&b) p4= p3 + p2 = 3; //调用f(5,&a),接着会调用f(4,&a), f(3,&a) p5= p4 + p3 = 5; //调用f(6,&a) 接着会调用f(5,&a) f(4,&a) p6= p5 + p4 = 8
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-3-22 11:13:44 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-22 12:22 编辑

逆向思考
//调用 f(1,&a), p1 = 1
//调用 f(2,&a), p2 = 1
//调用f(3,&a), p3 =  p1 + p2 = 2;
//调用f(4,&a) ,接着会调用,f(3,&a),f(2,&b)  p4= p3 + p2 = 3;
//调用f(5,&a),接着会调用f(4,&a), f(3,&a)   p5= p4  + p3 = 5;
//调用f(6,&a) 接着会调用f(5,&a)  f(4,&a)  p6= p5 + p4 = 8
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 12:21:19 | 显示全部楼层
这个我不好讲,是双递归函数,每调用一次函数,就重新衍生出两个函数继续递归。
结果是把最终递归得到的结果 1 相加。
也就是8个1相加,得到8
未命名.jpg

点评

很好,很有耐心  发表于 2012-3-22 14:13

评分

参与人数 1荣誉 +10 鱼币 +10 收起 理由
仰望天上的光 + 10 + 10

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 12:35:43 | 显示全部楼层
说白了 这就是斐波那契函数
但是 很不提倡递归
既不容易阅读 效率又低 而且还占用内存
没递归一次就出来两个子函数递归。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 14:01:30 | 显示全部楼层

OK,我来主要是想知道湮汐在3楼的图是用什么工具画的?不会word吧...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 14:09:52 | 显示全部楼层
仰望天上的光 发表于 2012-3-22 14:01
OK,我来主要是想知道湮汐在3楼的图是用什么工具画的?不会word吧...

是啊,是用word,我word技术还是不错的吧?:P
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-22 14:10:57 | 显示全部楼层
顺序思考呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 14:11:45 | 显示全部楼层
湮汐 发表于 2012-3-22 14:09
是啊,是用word,我word技术还是不错的吧?

...主要是很有耐心,word画这种图...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-22 14:12:01 | 显示全部楼层
湮汐 发表于 2012-3-22 12:21
这个我不好讲,是双递归函数,每调用一次函数,就重新衍生出两个函数继续递归。
结果是把最终递归得到的结 ...

感谢,让人一看就懂
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 14:16:41 | 显示全部楼层
仰望天上的光 发表于 2012-3-22 14:11
...主要是很有耐心,word画这种图...

呵呵,帮助大家解答疑惑吗!也锻炼自己呢!而且新官上任三把火哦!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-12 05:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表