【发布时间】:2021-07-14 11:30:37
【问题描述】:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n = 5;
int nums[] = {0 ,1};
if (n == 0)
{
return 0;
} else if (n == 1)
{
return 1;
} else{
for (int i = 2; i < n + 1; i++)
{
cout << i << endl;
nums[i] = nums[i-2] + nums[i-1];
}
return nums[n]
}
return 0;
}
这只是一个简单的斐波那契数组,但我的代码只给出了 stdout 一次,它是两次。仅供参考:此代码可能不正确计算斐波那契数组的第 n 项,但我正在努力解决这个 for 循环。
我认为 i
【问题讨论】:
-
nums[i]的大小为 2。对于i >= 2,您无法访问nums[i]。数组不会增长。您无法更改数组的大小。使用std::vector。您已经包含了标题。 -
谢谢你,你是对的!
-
对于
n等于5和i是:2、3、4、5,条件i < n+1满足4 次,如果这是您要求的。那么int nums[]原始数组不适合动态改变数组,改用std::vector。