c ++中的斐波那契序列

时间:2013-12-24 15:02:37

标签: c++ fibonacci

我刚开始学习编程,这是关于斐波那契序列的一个问题:

要求使用参数k(表示斐波纳契的k-顺序)和参数n(表示序列的第n个成员)来生成函数,并使用该函数来获得k阶序列的第m个成员。

f0 = 0, f1 =0, ....fk-2 =0, fk-1=1;
when n=k, k+1,...
fn= fn-1+fn-2+....+fn-k;     n=k,k+1,....

(f右侧的字母和数字是下标,表示第n个成员,第n个成员......)

以下是我的代码:

int Fibonacci(int k, int n){
int result=0;
if (n==k-1) return 1;
if (n<k-1) return 0;
if (n>=k){
    for(int i=n-1; i>i-k-1;--i){
        result+=Fibonacci(k,i);
        cout<<result<<endl;
    }
return result;
}

}


新版

int result=0;
int Fibonacci(int k, int n){
if (n==k-1) return 1;
if (n<k-1) return 0;
if (n>=k){
    for(int i=n-1; i>n-k-1;--i){
        result+=Fibonacci(k,i);
        cout<<result<<endl;
    }
return result;
}
}

我的问题是为什么这段代码无法正确答案?循环中应该有一些问题,但我找不到它们。有人会帮助我吗?

1 个答案:

答案 0 :(得分:2)

for(int i=n-1; i>i-k-1;--i)

i几乎总是大于i-k-1

也许你的意思是for(int i=n-1; i>n-k-1;--i),但你应该检查一下。