解决一道题,有代码,求修改错误
1.17③ 已知k阶裴波那契序列的定义为f0=0, f1=0, ..., fk-2=0, fk-1=1;
fn=fn-1+fn-2+...+fn-k, n=k,k+1,...
试编写求k阶裴波那契序列的第m项值的函数算法,
k和m均以值调用的形式在函数参数表中出现。
要求实现下列函数:
Status Fibonacci(int k, int m, int &f);
/* 如果能求得k阶斐波那契序列的第m项的值f,则返回OK;*/
/* 否则(比如,参数k和m不合理)返回ERROR */
代码
Status Fibonacci(int k, int m, int &f)
/* 求k阶斐波那契序列的第m项的值f */
{
int i,a[5000],sum,j;
sum=1;
j=0;
if(k<2||m<0) return ERROR;
if(m>0); if (m==k-1 || m==k) f=1;
else
{
for(i=0;i<k-2;i++)
a[i]=0;
a[k-1]=1;
a[k]=1;
for(i=k+1;i<=m;i++,j++)
{
a[i]=2*sum-a[i];
sum=a[i];
}
f=a[m];
}
return OK;
可是不对 环境指明 这句有问题 请问怎么修改?
if(m>0); if (m==k-1 || m==k) f=1;