Java的基础知识:项目Euler问题

时间:2018-04-24 19:55:21

标签: java

Fibonacci序列中的每个新术语都是通过添加前两个术语生成的。从1和2开始,前10个术语将是:

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

找出序列中所有偶数值的总和,不超过四百万。

我的代码:

    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

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

您的代码会迭代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,正如我们所料。