自己写的计算斐波那契数列的程序,代码还算简洁^ ^
spacemanlyh2011/01/17软件综合 IP:吉林
三四年没弄了。。。不足之处望大家多多指教
#include<iostream>
using namespace std;
int main(){
    cout<<":斐波那契数列"<<'\n';
    long double a=1,b=0,c=0;                            //关于兔子
    int n=99;                                       //需要计算的数据数
    long double g=1;
    int i=1;
    cout<<"第"<<i<<"月"<<g<<'\n';
    for(i=1;i<=n;i++)
    {
        c=c+b;
        b=a;
        a=c;
        g=a+c+b;
        cout<<"第"<<i+1<<"月"<<g<<'\n';
    }
    int x;
    cout<<'\n';
    cout<<"制作者:spacemanlyh"<<'\n';
    cout<<"输入任何内容以结束程序";
    cin>>x;
    return 0;
}
运行效果:
207_164b12952779269e2d7e1ae27bbd0.jpg
207_01ce12952779530bddef5d0985922.jpg
来自:计算机科学 / 软件综合
5
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
ltl
14年0个月前 IP:未同步
275048
没写高精度,大数据没写斯特林公式+快速幂……稍微大点的数就哭吧……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
小龙
14年0个月前 IP:未同步
275077
移植到C#下效果:
未命名.jpg
源码:
static void Main(string[] args)
        {
            long tick0, tick1;
            tick0 = XXXXXXXXXXXw.Ticks;
            double a = 1, b = 0, c = 0;  //关于兔子
            double g = 1;
            int n = 99;//需要计算的数据数
            Console.WriteLine("第1月1");
            for (int i = 1; i <= n; i++)
            {
                c=c+b;
                b=a;
                a=c;
                g=a+c+b;
                Console .WriteLine ("第{0}月{1}",i+1,g);
            }
            tick1 = XXXXXXXXXXXw.Ticks;
            Console.WriteLine("运算{0}次,耗时{1}微秒", n, (tick1 - tick0) / 10);
            Console .ReadKey ();
        }
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ltc
14年0个月前 IP:未同步
275101
为什么不用这个
2.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ehco
14年0个月前 IP:未同步
275177
扫盲---转自百度百科
“斐波那契数列(Fibonacci)”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年,籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。  
斐波那契数列通项公式
  斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……
  这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为[s:2]见图)(又叫“比内公式”,是用无理数表示有理数的一个范例。)
  有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的
奇妙的属性:
随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值0.6180339887……
斐波那契数列与黄金比
  1/1=1,2/1=2,3/2=1.5,5/3=1.6…,8/5=1.6,…………89/55=1.61818…,…………233/144=1.618055
  从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1。(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如第四项3是奇数,但它是偶数项,第五项5是奇数,它是奇数项,如果认为数字3和5都是奇数项,那就误解题意,怎么都说不通)
  如果你看到有这样一个题目:某人把一个8*8的方格切成四块,拼成一个5*13的长方形,故作惊讶地问你:为什么64=65?其实就是利用了斐波那契数列的这个性质:5、8、13正是数列中相邻的三项,事实上前后两块的面积确实差1,只不过后面那个图中有一条细长的狭缝,一般人不容易注意到。
  斐波那契数列的第n项同时也代表了集合{1,2,...,n}中所有不包含相邻正整数的子集个数。
  斐波那契数列(f(n),f(0)=0,f(1)=1,f(2)=1,f(3)=2……)的其他性质:
  1.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1
  2.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)
  3.f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1
  4.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)
  5.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1
  6.f(m+n)=f(m-1)·f(n-1)+f(m)·f(n)
  利用这一点,可以用程序编出时间复杂度仅为O(log n)的程序。
  7.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)
  8.f(2n-1)=[f(n)]^2-[f(n-2)]^2
  9.3f(n)=f(n+2)+f(n-2)
  10.f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
spacemanlyh作者
14年0个月前 IP:未同步
275197
那个公式算的太麻烦了。。。我用兔子推出了那个算法
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
spacemanlyh
笔友
文章
6
回复
17
学术分
0
2010/10/05注册,1年6个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}