| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1139 人关注过本帖
标题:新手,只是简单的练习公式,然后运行不了呀,请指点
只看楼主 加入收藏
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
以下是引用wmf2014在2015-9-4 18:46:54的发言:

你们的函数实现一个样,有什么比较的。如果是if(n<3)return 1; 或许还可讨论下哪个实现的效率高。


是的呢,版主教训的是,请教新算法怎么写

剑栈风樯各苦辛,别时冰雪到时春
2015-09-04 18:49
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 11楼 林月儿
不是针对你的。我回复的时候并没看到你的回复,你的问好运算符就很新颖了。

能编个毛线衣吗?
2015-09-04 18:51
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 12楼 wmf2014
我记得是三目运算符吧,管他呢上上学期学的呢,忘得差不多啦。。。

剑栈风樯各苦辛,别时冰雪到时春
2015-09-04 18:55
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:4 
6楼的代码有一个致命的BUG
C++有一种命名空间的概念
掌柜的很好奇,6楼的代码是怎么编译通过的?

2015-09-04 19:45
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 14楼 hjx1120
同好奇

剑栈风樯各苦辛,别时冰雪到时春
2015-09-04 19:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
用上递归还讲效率

授人以渔,不授人以鱼。
2015-09-04 20:26
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 16楼 TonyDeng
T版极端反感递归哦。
好像凡是斐波那契数列的都是递归的范例。的确递归时,函数的自我调用会让cpu反复入出栈做现场保护恢复工作,效率低下,受栈空间限制,但递归算法语句精炼,是考验编程人员将数学模型归纳为计算机算法最后组织成语句一个很好的手段。对编程一知半解的人肯定看不懂函数递归,对递归不熟练的肯定会写着写着就死循环了。
任何递归都可以变换为循环,斐波那契数用循环写的代码如下:
程序代码:
#include <iostream>
long F(long n);
int main(){
    long number = 10,s = 0;
    s = F(number);
    std::cout << ""<< number << "个斐波那契数是" << s << "\n";
    return 0;
}

long F(long n)
{
    int i,j,k,o;
    for(i=1,j=0,k=1;i<n;i++)
    {
        o=j+k;
        j=k;
        k=o;
    }
    return k;
}

能编个毛线衣吗?
2015-09-04 21:30
civilherui
Rank: 2
来 自:陕西榆林
等 级:论坛游民
威 望:2
帖 子:67
专家分:97
注 册:2015-1-18
收藏
得分:4 
函数是不能嵌套定义的。
#include<iostream>
using namespace std;
long fun(int n)
{
    if(n==1||n==2) return 1;
    else return fun(n-1)+fun(n-2);
}
int main()
{
    int n;
    cout<<"请输入n:";
    cin>>n;
    cout<<"fun("<<n<<")=";
    cout<<fun(n)<<endl;
}

我走向的将是机械、电子、编程的集成之路。
2015-09-05 08:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
回复 17楼 wmf2014
递归没有效率可言。适合的时候,可以用递归写出简洁的代码,但那不是效率。

授人以渔,不授人以鱼。
2015-09-05 21:18
快速回复:新手,只是简单的练习公式,然后运行不了呀,请指点
数据加载中...
 
   



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

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