如何将斐波那契数推入外部数组

How can I push a Fibonacci number into external array?

本文关键字:外部 数组      更新时间:2023-10-16

我不知道在命名空间上声明值和在全局上声明值是一样的。

所以我想改变我的代码不使用全局变量。

如何在不使用全局变量的情况下跟踪从0到20的斐波那契数?

#include <iostream>
using namespace std;
int Fibonacci(int num);
namespace Fib{
    int arr[100];
    int num;
}
int main(){
    cin >> Fib::num;
    Fibonacci(Fib::num);
    return 0;
}
int Fibonacci(int n){
    if(Fib::num < 1) return -1;
    int result = 0;
    int idx;
    result = (n == 0) ? 0 : (n == 1) ? 1 : Fibonacci(n-1) + Fibonacci(n-2);
    Fib::arr[n] = result;
    if(n == Fib::num){
        for(idx=1; idx < n+1 ; idx++){
            cout << Fib::arr[idx] << " ";
        }
        cout << endl;
    }
    return result;
}

这段代码的问题不在于名称空间的使用。它与全局变量的使用有关。使用全局变量有无限的理由,可能只有一两个场景是合适的。此处不适合