Jin*_*oss 4 c++ arrays initializer
#include<iostream>
using namespace std;
long long int memo[20] = {-1}; //create memo table and initialise to -1
long long int fibo(long long int n)
{
if(memo[n]>-1) //changing this to if(memo[n]>0) works fine
return memo[n]; //but as such this gives 0 from all my inputs
if(n<=2)
return 1;
memo[n] = fibo(n-1) + fibo(n-2); //recurse
return memo[n];
}
int main()
{
long long int n;
cin>>n;
cout<<fibo(n)<<endl; //calls the fibo function
for(int i=0;i<20;i++) //this prints my memo table used...
cout<<memo[i]<<" ";
}
Run Code Online (Sandbox Code Playgroud)
我正在使用自上而下的dp计算第n个Fibonacci数,但是我的备忘表被清零了.即使在我不感动的地方,为什么呢?
当你有
long long int memo[20] = {-1};
Run Code Online (Sandbox Code Playgroud)
您没有告诉编译器使用全-1来初始化数组.你要告诉它的是一个初始化列表,并用它的内容初始化数组中的元素.由于列表小于数组,因此每个缺少的初始化程序都会导致编译器初始化相应的元素.
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |