| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 365 人关注过本帖
标题:一道递归题,大家帮忙看看
只看楼主 加入收藏
编程达人
Rank: 2
等 级:论坛游民
帖 子:62
专家分:66
注 册:2011-8-11
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
一道递归题,大家帮忙看看
程序代码:
#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; 
  }    
}
main()
{int x;

 fun(6,&x);

 printf("%d\n",x); 
   
}
函数调用里面怎么运行
2011-09-14 10:12
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:0 
菲薄拉希数列 么。。。。。。
这样的递归看着也太。。。。。

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-14 10:24
uselessID
Rank: 2
等 级:论坛游民
帖 子:44
专家分:76
注 册:2011-8-22
收藏
得分:0 
我觉得这个题画一个树形图就比较容易理解了。
就是嵌套调用fun()函数,最里层得到fun(2,&x)后,x=1,然后逐层往外推,可以得到fun(3,&x)=2,fun(4,&x)=3,fun(5,&x)=5。。
2011-09-14 10:41
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:0 
自己调自己,知道这个条件成立
if(k==1||k==2)
    *p=1;

惟我独行...
2011-09-14 11:01
编程达人
Rank: 2
等 级:论坛游民
帖 子:62
专家分:66
注 册:2011-8-11
收藏
得分:0 
程序代码:
{fun(k-1,&a);
  fun(k-2,&b);
  *p=a+b;
  }   
这里面具体怎么运行,说详细点
2011-09-14 11:04
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:5 
试着理解一下这个
#include<stdio.h>
int fun1(int k)
{
    if(k == 1 || k == 2) return 1;
    return fun1(k - 1) + fun1(k - 2);
}
int fun2(int k)
{
    int f, f1, f2, i;
    f1 = 1;
    f2 = 1;
    f = 1;
    for(i = 3; i <= k; i++)
    {
        f = f1 + f2;
        f1 = f2;
        f2 = f;
    }
    return f;
}
int main()
{
    printf("%d\n", fun1(6));
    printf("%d\n", fun2(6));
    return 0;
}


[ 本帖最后由 beyondyf 于 2011-9-14 14:22 编辑 ]

重剑无锋,大巧不工
2011-09-14 14:19
快速回复:一道递归题,大家帮忙看看
数据加载中...
 
   



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

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