c++ - vector 中的斐波那契数列

标签 c++ vector fibonacci

我在考虑斐波那契数列递归方法的复杂性,我想尝试将数字存储在一个 vector 中,这样我的程序就可以查看该 vector 包含的最后两个数字以生成下一个数字。我写了一个程序,我认为会使用指向 vector 最后一个元素的指针将下一个数字附加到 fibs vector ,但没有任何反应(当我在调用该程序后打印 vector 时,它仍然只包含 0 和 1 我手动附加为边缘条件。

这是范围问题吗?

vector<int>fibs;
template <typename Iterator>
void newfib(Iterator it) {
   fibs.push_back(*(it-1)+*(it-2));
 }     

int main () {

vector<int>fibs;
fibs.push_back(0); fibs.push_back(1);
newfib(fibs.end());
return 0;
}

感谢您的帮助!

最佳答案

您声明了两个具有相同名称的 vector :一个在全局范围内,第二个在 main 函数中。在函数 newfib 中,您附加到全局 vector ,但在 main 函数中,您打印局部,它保持不变。

例如,我建议避免使用全局变量并通过引用传递 vector 。

关于c++ - vector 中的斐波那契数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183640/

相关文章:

c++ - 在另一台Mac上运行应用程序

android - JNI "Optimization"值得吗?

c++ - 用于在 Windows 7 上输出的 fstream

c++ - 对于不断添加和删除的一组元素,我应该使用哪个容器

c++ - 如何填充和返回集合 vector 的 vector

c++如何删除二维 vector 中的任何空元素

java - ConcurrentHashMap 和 Fibonacci 数 - 不一致的结果

c++ - 内联函数

algorithm - 寻找数字的负斐波那契表示的贪心算法?

python - 欧拉计划的非蛮力解决方案 25