K阶斐波那契数列
//K阶斐波那契数列
#include <iostream.h>
//#include "resource.h"
//#define ERROR 0
void fib(int k,int m,int& f)
{
int a[100];
if(m>100) cout<<"m过大!"<<endl;
if(k<2||m<0)
cout<<"ERROR"<<endl;
else if(m<k-1)
f=0;
else if(m==k-1)
f=1;
else
{
for(int i=0;i<k-1;i++)
a[i]=0;
a[k-1]=1;
for(int j=k;j<m;j++)
{
int sum=0;
for(int l=j-k;l<j;l++)
sum=sum+a[l];
a[j]=sum;
//cout<<a[j]<<endl;
}
f=a[m-1];
}
}
void main()
{
int v=0;
fib(4,7,v);
cout<<"This value is:"<<v<<"."<<endl;
}
#include <iostream.h>
//#include "resource.h"
//#define ERROR 0
void fib(int k,int m,int& f)
{
int a[100];
if(m>100) cout<<"m过大!"<<endl;
if(k<2||m<0)
cout<<"ERROR"<<endl;
else if(m<k-1)
f=0;
else if(m==k-1)
f=1;
else
{
for(int i=0;i<k-1;i++)
a[i]=0;
a[k-1]=1;
for(int j=k;j<m;j++)
{
int sum=0;
for(int l=j-k;l<j;l++)
sum=sum+a[l];
a[j]=sum;
//cout<<a[j]<<endl;
}
f=a[m-1];
}
}
void main()
{
int v=0;
fib(4,7,v);
cout<<"This value is:"<<v<<"."<<endl;
}
本文介绍了一种K阶斐波那契数列的实现方法,并提供了一个具体的C++代码示例。该算法使用数组来存储中间结果,避免了重复计算,适用于求解特定位置的K阶斐波那契数值。
4966

被折叠的 条评论
为什么被折叠?



