2017-03-01 2 views
0
public class Fibonaccisequence { 
    public static void main(String args[]){ 
     int term[] = new int[]{1,2}; 
     int termValue = term[0]+term[1]; 
     int sum = 0; 
     while(termValue <= 4000000) 
     { 
      termValue = term[0]+term[1]; 
      if (term[1]%2==0) 
      {sum=sum+term[0];} 


      int a= term[1]; 
      term[1]=termValue; 
      term[0]=a; 
     } 

     System.out.println(sum); 
    } 
} 

Problem Detail: Jeder neue Begriff in der Fibonacci-Folge wird durch Addition der beiden vorherigen Bedingungen erzeugt. Durch Starten mit 1 und 2 sind die ersten 10 Bedingungen sind:Euler Projekt # 2

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

unter Berücksichtigung der Bedingungen die Fibonacci-Sequenz, deren Werte nicht mehr als vier Millionen betragen, finde die Summe der geradzahligen Terme

Ich habe 2851443 als Antwort, und ich habe meinen Code viele Male überprüft.

+0

Was Problem Sie stehen vor ...? –

+0

@MehrajMalik die Antwort im bekommen ist falsch – user7639356

Antwort

1

Ein Problem besteht in diesem Code:

if (term[1]%2==0) 
{sum=sum+term[0];} 

Wenn Sie diesen Begriff erkennen [1] selbst ist, sollten Sie sein, es zu der Summe des Hinzufügen, nicht der vorherige Wert:

if (term[1] % 2 == 0) { 
    sum = sum + term[1]; // add term[1], not term[0] 
}