【发布时间】:2018-06-20 18:51:24
【问题描述】:
这是我的代码。这里i 是作为全局整数的静态整数。正如我在这里所知道的,对于 n = 4,i 的值应该是 8。但它显示为 0。可能是我缺乏知识。请让我知道我缺少什么。
#include<iostream>
using namespace std;
static int i;
int fib(int n){
i++;
if(n==0){
return 0;
}
else if(n==1){
return 1;
}
return fib(n-1)+fib(n-2);
}
int main(){
int n;
cin>>n;
cout<<"fib("<<n<<") = "<<fib(n)<<" calls = "<<i;
}
这是我的输出:
fib(4) = 3 calls = 0
【问题讨论】:
-
@carl I 的值是在函数调用之前计算出来的。用 std::cout 将此语句拆分为两个语句。
标签: c++ recursion static fibonacci