Basics of Java : Project Euler problems

Mukarram Waqqas

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

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

Find the sum of all the even-valued terms in the sequence which do not exceed four million.

My code:

    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);

}

That outputs 1110529254 but, the correct answer is 4613732.

Help would be very much appreciated.

Doston

Your code does iteration 4 million times but it does not check the sum of all the even-valued terms in the sequence whether do not exceed four million or not.

Below you can find my variant of getting sum of all the even-valued terms in the sequence which dont exceed for million.

 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);
  }
}

The answer which I get from this code is 4613732 as we expected.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related