【发布时间】:2015-12-19 11:14:08
【问题描述】:
我只是想生成一段有效的代码来获得斐波那契数列的第 n 个数字,并使用下面的代码来执行此操作。但是,我收到错误 Expression: vector subscript out of range 并且不知道为什么会发生。
int Fib(int n)
{
vector<int> output;
output.reserve(n);
output[0] = 1; output[1] = 2;
for(int i = 2; i <=n; ++i)
{
output.push_back(output[i-1]+ output[i-2]);
}
return output[n];
}
【问题讨论】:
-
output.reserve(n+1)不应该受到伤害。 -
为什么不在固定时间内做呢? stackoverflow.com/a/19892721/382471
-
或者让你的编译器生成它goo.gl/jfZXKY 当然,这只有在你在编译时知道你想要斐波那克系列的哪一步时才有效。
标签: c++