【发布时间】:2012-06-30 15:49:43
【问题描述】:
请看下面的代码
package Euler;
import java.util.ArrayList;
import java.util.List;
public class Problem2
{
public static void main(String[]args)
{
int firstNumber=1;
int secondNumber=2;
int thirdNumber = 0;
int sum = 0;
List array = new ArrayList();
while(true)
{
if(thirdNumber>=400000)
{
break;
}
else
{
thirdNumber = firstNumber+secondNumber;
System.out.println(thirdNumber);
if(thirdNumber%2==0)
{
array.add(thirdNumber);
}
firstNumber = secondNumber;
secondNumber = thirdNumber;
}
}
for( int i=0;i<array.size();i++)
{
int num = Integer.parseInt(array.get(i).toString());
sum = sum+num;
}
System.out.println("The Sum is: "+sum);
}
}
在这里,我正在尝试解决来自 Project Euler 的 this 问题,无论如何,这就是问题所在。
斐波那契数列中的每个新项都是通过添加 前两期。从 1 和 2 开始,前 10 个术语将 是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
通过考虑斐波那契数列中的项,其值不 超过四百万,求偶数项之和。
这就是我得到的答案——257112;
它说答案是错误的。我不知道为什么会这样。供您参考,我的母语不是英语,我也没有用英语做数学。所以我怀疑我是否误解了这个问题。
请帮助我找到解决此问题的正确方法。谢谢
【问题讨论】:
-
@nhahtdh 不,序列中小于四百万的项并不多。与
int一起工作正常。 -
这是一个项目欧拉问题,所以人们应该避免提供解决方案。
-
正确答案是 sum = 4613732。在担心总和之前,您应该确保斐波那契数是正确的。看看您是否可以创建一个值列表并获得正确的值。
标签: java math arraylist fibonacci