Fibonacci序列中的每个新项都是通过添加前两个项来生成的。从1和2开始,头10个术语将是:
1、2、3、5、8、13、21、34、55、89、
求出序列中所有不超过400万的偶数项之和。
我的代码:
int x = 0;
int y = 1;
int z;
int sum = 0;
for(int i = 0; i <= 4000000; i++)
{
z = x + y;
x = y;
y = z;
if(y % 2 == 0)
{
sum = sum + y;
}
}
System.out.println(sum);
}它输出1110529254,但正确的答案是4613732。
我将非常感谢你的帮助。
发布于 2018-05-21 22:22:06
您的代码进行了400万次迭代,但它不检查序列中所有偶数项的和,无论是否超过400万次。
下面你可以找到我的变体,得到数列中所有偶数项的和,不超过百万。
public class Example_1 {
public static void main(String args[]) {
int x = 0;
int y = 1;
int z;
int sum = 0;
while (true) {
z = x + y;
x = y;
y = z;
if(y % 2 == 0) {
sum = sum + y;
}
if (sum >= 4000000){
break;
}
}
System.out.println("Sum: " + sum);
}
}我从这段代码中得到的答案是我们所期望的4613732。
https://stackoverflow.com/questions/50009829
复制相似问题