- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简短的 C++ 程序,它填充一个斐波那契数列,然后计算各项的总和,并将总和显示到屏幕上。
#include <iostream>
using namespace std;
const int SIZE = 10;
int main() {
int sum = 0; // running sum
int fib[SIZE]; // array of Fibonacci numbers
// initialize 1st and 2nd elements = 1, the rest to 0
for (int i = 2; i < SIZE; i++) {
fib[0] = 1;
fib[1] = 1;
fib[i] = 0;
}
// populate the array:
// next term in Fibonacci sequence: fib[current] - 1 + fib[current] - 2
for (int i = 0; i < SIZE; i++) {
fib[i + 1] = fib[i] + fib[i - 1];
sum = sum + fib[i + 1];
}
// display the contents and the sum
for (int i = 0; i < SIZE; i++) {
cout << i + 1 << ": " << fib[i] << endl;
}
cout << "\nSum of the Fibonacci numbers: " << sum << endl;
//system("pause");
return 0;
}
当我从 SIZE = 10
开始时,程序将总和相加...
输出:
1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
9: 34
10: 55
Sum of the Fibonacci numbers: 231
--------------------------------
Process exited after 0.02942 seconds with return value 0
Press any key to continue . . .
事实上,SIZE
的任何值在 2 到 28 之间都可以。我得到了总和的正确正值。
但是,当我尝试定义 SIZE = 29
或更大时,会发生这种情况:
输出:
1: 1
2: 32764
3: 32765
4: 65529
5: 98294
6: 163823
7: 262117
8: 425940
9: 688057
10: 1113997
.
.
.
25: 1519229809
26: -1836801828
27: -317572019
28: 2140593449
29: 1823021430
Sum of the Fibonacci numbers: 1160283831
--------------------------------
Process exited after 0.05147 seconds with return value 0
Press any key to continue . . .
我不明白为什么第二个元素从 1 变为 32764,以及为什么当我定义 SIZE = 29
或更大时数组中有负值。实际上,我将开始获取随机值,并且在每次编译和运行后每个值都异常不同。
这与编译有关吗?也许将数据类型从 int
更改为 long
?我只是用完了占位符来表示数字吗?欢迎提出意见。
附言我还没有递归地重写这个。但我不太担心。
编辑:非常感谢您的评论。我每次都能学到新东西。
最佳答案
你有:
for (int i = 0; i < SIZE; i++)
{
fib[i + 1] = fib[i] + fib[i - 1];
sum = sum + fib[i + 1];
}
对于 i == 0
,您正在访问 fib[i-1]
,即 fib[-1]
.
对于 i == SIZE-1
,您正在访问 fib[SIZE]
.
它们是未定义行为的原因。
你需要使用:
sum = 2; // Takes care of fib[0] and fib[1]
for (int i = 1; i < SIZE-1; i++)
{
fib[i + 1] = fib[i] + fib[i - 1];
sum += fib[i + 1];
}
附言
重要的是要注意 sum
溢出 SIZE
的值大于 44 和 fib[SIZE-1]
溢出 SIZE
的值大于 46 如果 sizeof(int)
是 4. long
的使用或 long long
当 SIZE
时将是必要的超出了这些限制。
关于c++ - 斐波那契数列 : Elements do not make sense when array size > 28,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953530/
ValueError Traceback (most recent call last) in 23 out
在 CSS 中,我从来没有真正理解为什么会发生这种情况,但每当我为某物分配 margin-top:50% 时,该元素就会被推到页面底部,几乎完全消失这一页。我假设 50% 时,该元素将位于页面的中间位
我正在尝试在 pyTorch 中训练我的第一个神经网络(我不是程序员,只是一个困惑的化学家)。 网络本身应该采用 1064 个元素向量并用 float 对它们进行评级。 到目前为止,我遇到了各种各样的
我有一个简单的问题。如何在 3 个维度上移动线性阵列?这似乎太有效了,但在 X 和 Y 轴上我遇到了索引问题。我想这样做的原因很简单。我想创建一个带有 block 缓冲区的体积地形,所以我只需要在视口
我正在尝试运行我购买的一本关于 Pytorch 强化学习的书中的代码。 代码应该按照本书工作,但对我来说,模型没有收敛,奖励仍然为负。它还会收到以下用户警告: /home/user/.local/li
我目前正在使用 this repo使用我自己的数据集执行 NLP 并了解有关 CNN 的更多信息,但我一直遇到有关形状不匹配的错误: ValueError: Target size (torch.Si
UIScrollView 以编程方式设置,请不要使用 .xib 文件发布答案。 我的 UIScrollView 位于我的模型类中,所以我希望代码能够轻松导入到另一个项目中,例如。适用于 iPad 或旋
我在我的 Ruby on Rails 应用程序(版本 4.3.1)中使用 Bootstrap gem。我最近发现了响应式字体大小功能 (rfs)。根据 Bootstrap 文档,它刚刚在 4.3 版中
这个问题不太可能帮助任何 future 的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
size 之间的语义区别是什么?和 sizeIs ?例如, List(1,2,3).sizeIs > 1 // true List(1,2,3).size > 1 // true Luis 在 c
我想从 div 中删除一些元素属性。我的 div 是自动生成的。我想遍历每个 div 和子 div,并想删除所有 font-size (font-size: Xpx)和 size里面font tag
super ,对 Python 和一般编程 super 新手。我有一个问题应该很简单。我正在使用一本使用 Python 3.1 版的 python 初学者编程书。 我目前正在写书中的一个程序,我正在学
我无法从 NativeBase 更改缩略图的默认大小。我可以显示默认圆圈,即小圆圈和大圆圈,但我想显示比默认大小更大的圆圈。这是我的缩略图代码: Prop 大小不起作用,缩略图仍然很小。 我的 Na
我是pytorch的新手。在玩张量时,我观察到了两种类型的张量- tensor(58) tensor([57.3895]) 我打印了它们的形状,输出分别是 - torch.Size([]) torch
这是我的 docker images 命令的输出: $ docker images REPOSITORY TAG IMAGE ID CREATED
来自 PriorityQueue 的代码: private E removeAt(int i) { assert i >= 0 && i < size; modCount++;
首先,在我的系统上保留以下内容:sizeof(char) == 1 和 sizeof(char*) == 4。很简单,当我们计算下面类的总大小时: class SampleClass { char c
我正在编写一个游戏来查找 2 个图像之间的差异。我创建了 CCSprite 的子类 Spot。首先我尝试创建小图像并根据其位置添加自身,但后来我发现位置很难确定,因为很难避免 1 或 2 个像素的偏移
我有一个 Tumblr Site每个帖子的宽度由标签决定。 如果一篇文章被标记为 #width200,CSS 类 .width200 被分配。 问题是,虽然帖子的宽度不同,但它们都使用主题运算符加载相
这个问题在这里已经有了答案: What is the ideal growth rate for a dynamically allocated array? (12 个答案) 关闭 8 年前。 我
我是一名优秀的程序员,十分优秀!