欢迎来到天天文库
浏览记录
ID:8804311
大小:39.00 KB
页数:4页
时间:2018-04-08
《k阶斐波那契数列的实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、斐波那契(Fibonacci)数列1算法分析:1算法的实现:1计算一元多项式:2斐波那契(Fibonacci)数列算法分析:首先看这样一个有趣的问题:假定一个月大小的一对兔子(雄和雌的),对于繁殖还太年轻,但两个月大小的兔子便足够成熟。又假定从第二个月开始,每个月它们都繁殖一对新的兔子(正好是雌雄一对),如果每一对兔子的繁殖按上面所说的方式,从开始起每个月有多少对兔子呢? 解答: 我们可以用合适的图示来表明题意: 即每个月兔子的数量是: 1,1,2,3,5,8,13,21,34…其规律是从第三项起,每一项都是前两项的和.用递推公式表达就是:a[1]=a[2]=1,a[n]=
2、a[n-1]十a[n-2](n>=3)此处k=2;作业上的递推公式:f[0]=0,f[1]=0,……,f[k-2]=0,f[k-1]=1f[n]=f[n-1]+f[n-2]+……+f[n-k],n=k,k+1,……此处k为大于3的任意整数;算法的实现:#include"stdafx.h"#include"iostream.h"#include"stdlib.h"//Fibonacci函数intfibonacci(intk,intm)//k为阶数,m为待计算项{int*f;//数列数组inti;//计算数列项控制变量intj;if(k<2
3、
4、m<0)return-1;//判断数据取值超出
5、界限否f=(int*)malloc(m*sizeof(int));//申请数列使用空间if(f==NULL)return-1;else{for(i=0;i6、数intm;//求解的数列通项项数intresult;//输入数据cout<<"Enterk=";cin>>k;cout<>m;//调用函数result=fibonacci(k,m);//输出结果if(result==-1)cout<<"INPUTERROR!!"<#definemaxsize50main(){intm,n,d,i,count;intA[maxsize];printf("请输入n,m的值,以逗号7、分开:");scanf("%d,%d",&n,&m);for(i=0;i
6、数intm;//求解的数列通项项数intresult;//输入数据cout<<"Enterk=";cin>>k;cout<>m;//调用函数result=fibonacci(k,m);//输出结果if(result==-1)cout<<"INPUTERROR!!"<#definemaxsize50main(){intm,n,d,i,count;intA[maxsize];printf("请输入n,m的值,以逗号
7、分开:");scanf("%d,%d",&n,&m);for(i=0;i
此文档下载收益归作者所有