Int 值奇怪地类似于指针
Int value oddly resembles a pointer
我在这里发布了一些我写的代码:http://ideone.com/2TrjcN 包含在给定的输出中。
这是它的另一个副本:
#include <iostream>
using namespace std;
int Problem2(void);
int main()
{
int sum2 = Problem2();
cout << "sum2 is: " << sum2 << endl;
}
int Problem2 (void)
{
int sum = 0;
int isEvenPrev = 0;
int isEvenCurr = 2;
for (int i=3 ; i<20; i++)
{
// determine if i is even
if (i%2 == 0)
{
isEvenPrev = isEvenCurr;
isEvenCurr = i;
sum += (isEvenPrev + isEvenCurr);
cout << "isEvenPrev: " << isEvenPrev << cout << " isEvenCurr: " << isEvenCurr << " sum: "<< sum << endl;
}
}
return sum;
}
我对这个小算法还是比较有信心的,它的目的是这样的:
“斐波那契数列中的每个新项都是通过添加前两项生成的。从 1 和 2 开始,前 10 项将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
考虑斐波那契数列中不超过四百万的项,求偶数项之和。 “
isEvenPrev 的值正在打印成看起来像指针的东西,但我所做的只是将一个已经是 int 的值设置为另一个已经是 int 的值。
有人可以告诉我我可能哪里出错了。斐波那契数列实际上有效,直到我得到非常大的值。然后总和变为负数。
从这一行中删除第二个 cout
:
cout << "isEvenPrev: " << isEvenPrev << cout << " isEvenCurr: " << isEvenCurr << " sum: "<< sum << endl;
我在这里发布了一些我写的代码:http://ideone.com/2TrjcN 包含在给定的输出中。 这是它的另一个副本:
#include <iostream>
using namespace std;
int Problem2(void);
int main()
{
int sum2 = Problem2();
cout << "sum2 is: " << sum2 << endl;
}
int Problem2 (void)
{
int sum = 0;
int isEvenPrev = 0;
int isEvenCurr = 2;
for (int i=3 ; i<20; i++)
{
// determine if i is even
if (i%2 == 0)
{
isEvenPrev = isEvenCurr;
isEvenCurr = i;
sum += (isEvenPrev + isEvenCurr);
cout << "isEvenPrev: " << isEvenPrev << cout << " isEvenCurr: " << isEvenCurr << " sum: "<< sum << endl;
}
}
return sum;
}
我对这个小算法还是比较有信心的,它的目的是这样的: “斐波那契数列中的每个新项都是通过添加前两项生成的。从 1 和 2 开始,前 10 项将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
考虑斐波那契数列中不超过四百万的项,求偶数项之和。 “
isEvenPrev 的值正在打印成看起来像指针的东西,但我所做的只是将一个已经是 int 的值设置为另一个已经是 int 的值。
有人可以告诉我我可能哪里出错了。斐波那契数列实际上有效,直到我得到非常大的值。然后总和变为负数。
从这一行中删除第二个 cout
:
cout << "isEvenPrev: " << isEvenPrev << cout << " isEvenCurr: " << isEvenCurr << " sum: "<< sum << endl;