c++ - 递归斐波那契函数(带负数)

标签 c++ function recursion fibonacci

我能够为所有大于 0 的数字编写递归斐波那契函数,但该函数对于任何负数都是完全不正确的。知道如何在 C++ 中实现它吗?

int fibonacci(int n){
    if(n == 0)return 0;
    if(n == 1)return 1;

    return fibonacci(n - 1) + fibonacci(n - 2);
}

最佳答案

根据维基百科,http://en.wikipedia.org/wiki/Generalizations_of_Fibonacci_numbers ,负数的递归函数不同于正数。

对于积极的: n_2 = n_1 + n_0

对于否定: n_-2 = n_-1 - n_0

这样递归就可以“以相反的方式”工作,而相同的代码将无法工作。您将不得不编写一个新函数。

编辑:维基百科提供了概括:F_-n = (-1)^n F_n 所以只需计算 F_n 并用 (-1)^n 修改符号

关于c++ - 递归斐波那契函数(带负数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858498/

相关文章:

c++ - 模板化类的成员函数的特化不起作用

python - 如何在 Python 的包装函数中使用任意函数

javascript - 尾递归 JSON 构造函数

java - 用 Java 解决 2D 迷宫问题

C++ 遍历 wstring 的每个字符并替换它

c++ - 通过链接到自身的深度优先搜索节点进行注入(inject)。 C++

c++ - GetShortPathName 函数有哪些替代方法?

c - 为什么在打印语句之前调用函数?

function - 如何编写包含导入函数的自己定义的函数?

ios - SKNode runAction 滞后 :completion: in recursive method