【发布时间】:2018-06-15 12:05:46
【问题描述】:
问题是……
斐波那契数列中的每个新项都是通过添加前两项来生成的。从 1 和 2 开始,前 10 个术语将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
通过考虑斐波那契数列中值不超过四百万的项,求偶数项之和。
我已经制作了一个应该这样做的代码,粘贴在下面:
public class Main {
public static void main(String[] args) {
// Setting up the variables. sumF3 will be printed at the end.
int sumF1 = 1;
int sumF2 = 2;
int sumF3 = 0;
// If loops to cancel out the odd numbers, but let them be added to sumF2 etc anyway.
while(4000000 > sumF1) {
if (sumF1 % 2 == 0) {
sumF3 += sumF1;
}
if (sumF2 % 2 == 0) {
sumF3 += sumF2;
}
// Normal fibonacci sequence.
sumF1 += sumF1 + sumF2;
sumF2 += sumF1 + sumF2;
}
System.out.println(sumF3);
}
}
我首先使用两个 if 循环过滤掉奇数,然后将其添加到 sumF3。它将继续添加到 sumF3 中,直到达到 400 万以下。当 while 循环停止时,它应该打印出“4613732”,但它会打印出不同的东西(4194302)。我觉得这里有一个逻辑缺陷。
【问题讨论】: