| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:一个递归的问题
只看楼主 加入收藏
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
结帖率:80%
收藏
 问题点数:0 回复次数:5 
一个递归的问题
先谢谢大家能看本人的帖,问题如下谢谢:
#include<iostream.h>
const int N=8;
long Fibo(int n);
void main()
{
    long f=Fibo(N);
    cout<<f<<endl;
}


long Fibo(int n)
{
    if(n==1)
        return 1L;
    else
        if(n==2)
            return 1L;
        else
            return Fibo(n-1)+Fibo(n-2);
}


const是啥意思啊?这个递归使用时是怎么算的?先求出Fibo(n-1)函数的值还是算出一个就执行加运算?这里回归时它是怎么回归的?我笔算一个函数,当n为3时返回1,但是我在这里就卡住了!要怎么回归啊?还有return 1L  L是啥意思?是LONG?还是?
谢谢大家,给我帮帮忙!谢谢!
搜索更多相关主题的帖子: 递归 
2008-08-29 14:36
fish_
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-4-25
收藏
得分:0 
看看C++大学教程吧!看了你就不会提这种问题了!~ - ~
2008-08-29 15:10
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
C++大学教程?书?还是?
我没有这本书?能否说明点?谢谢了!

编程小菜
2008-08-29 15:15
codeplayer
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-26
收藏
得分:0 
const 说明N是常量;
先算F(n-1),再算F(n-2),然后加起来;
return 1L,加个L,指明1是long型
2008-08-29 22:25
xmnathan
Rank: 2
等 级:论坛游民
威 望:1
帖 子:73
专家分:10
注 册:2008-8-30
收藏
得分:0 
const 就是定义常量
递归 比如你算得是Fibo数列的第8个元素,他就会先算7和6,要算7和6就要算6和5,5和4....最后追溯到2和1 即已知的值 然后反过来进行加运算先算第3个元素然后第4个...,最后加回到第8个元素得到结果

看C++ Primer吧 有中文第4版电子版的

递归
#include <iostream>
using namespace std;
int ff(int n)
{
    int f;
    if((n==1)|(n==2)) f=1;
    else f=ff(n-1)+ff(n-2);
    return f;
}
void main()
{
    int n;
    cout<<"输入数列输出个数"<<endl;
    cin>>n;
    if(n<1)
    {
        system("cls");
        cout<<"输入错误请重新输入"<<endl;
        main();
    }
    for(int i=1;i<=n;i++)
        cout<<ff(i)<<"  ";
}
不用递归更简单,循环
#include <iostream>
using namespace std;
void main()
{
    int n;
    cout<<"输入限定范围值";
    cin>>n;
    cout<<endl<<"数列输出:"<<endl;
    int a,b,c;
    a=1,b=1;
    cout<<a<<"  "<<b<<"  ";
    do
    {
        c=a+b;
        if(c<n)
                {
            cout<<c<<"  ";
                }
        a=b,b=c;
     }while(c<n);
}
2008-08-30 10:41
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
非常感谢大家,我好好理解一下吧!我就想知道先算前面的还是一起?现在知道了!回归的话,我在好好算下!

编程小菜
2008-08-31 12:55
快速回复:一个递归的问题
数据加载中...
 
   



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

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