gpt4 book ai didi

c# - 欧拉计划 - 编号 2 - C#

转载 作者:行者123 更新时间:2023-11-30 15:41:49 24 4
gpt4 key购买 nike

我是 C# 编程的新手,我认为尝试解决欧拉问题是一个不错的起点。但是,我已经到了似乎无法获得问题 2 的正确答案的地步。

“斐波那契数列中的每一项都是通过添加前两项生成的。从 1 和 2 开始,前 10 项将是:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

通过考虑斐波那契数列中值不超过四百万的项,找到偶数项的总和。"

我的代码是这样的:

int i = 1;
int j = 2;
int sum = 0;

while (i < 4000000)
{
if (i < j)
{
i += j;

if (i % 2 == 0)
{
sum += i;
}

}

else
{
j += i;

if (j % 2 == 0)
{
sum += j;
}
}
}

MessageBox.Show("The answer is " + sum);

基本上,我认为我只是获取序列的最后两个偶数并将它们相加 - 但我不知道如何获取序列的所有偶数并将它们相加。有人可以帮助我,同时尝试从我的起点开始进步吗?

附言- 如果有任何非常糟糕的布局选择,请说出来,因为现在消除这些将帮助我在未来成为更好的程序员:)

非常感谢。

最佳答案

我刚刚登录到我的 Project Euler 帐户,以查看正确答案。正如其他人所说,您忘记添加初始项 2,但您的代码还可以(正确答案是您的代码输出 + 2),干得好!

虽然这很令人困惑,但我认为如果您使用 3 个变量,它看起来会更清晰,例如:

int first = 1;
int second = 1;
int newTerm = 0;
int sum = 0;

while (newTerm <= 4000000)
{
newTerm = first + second;

if (newTerm % 2 == 0)
{
sum += newTerm;
}

first = second;
second = newTerm;
}

MessageBox.Show("The answer is " + sum);

关于c# - 欧拉计划 - 编号 2 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7999824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com