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;
}