2017-11-01 1 views
-4

Ich versuche, Fibonacci-Sequenz für Zahlen kleiner als 1 Million zu erstellen und dann die Summe jeder geraden Zahl in der Sequenz zu finden.System.ArgumentOutOfRangeException: Beim Erstellen einer Fibonnaci-Sequenz

Dafür versuche ich eine Liste mit der Fibonacci-Sequenz zu erstellen und dann eine for-Schleife mit Mod zu verwenden, um gerade Zahlen (n% 2 = 0) zu finden und sie dann hinzuzufügen, aber beim Versuch, eine Fibonacci-Sequenz zu erstellen dieser Fehler:

System.ArgumentOutOfRangeException.

Hier ist mein Code:

{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     // creates a list with the fib[0]= 0 and fib[1] = 1 

      List<int> fib = new List<int>(new int [] {0, 1}); 

     /// for loop that creates the next element in the fib sequence list by creating the next element by adding the previous two elements. 

      for (int i = 2; i < 100; i++) 
      { 
       fib[i] = (fib[(i - 1)] + fib[(i - 2)]); 
      } 

      Console.WriteLine(fib); 
      Console.ReadLine(); 
     } 
    } 
} 

Dieses kommt ohne Build-Fehler, damit ich das Problem nicht lösen kann. Ich dachte, dass die i - 2 zu einer negativen Zahl führen könnte, was das Problem ist und was C# suggeriert, aber ich denke nicht, dass das der Fall ist.

+0

Sie müssen 'fib.Add' anstelle des Indexers' fib [i] 'verwenden, d. H.' Fib.Add (fib [(i - 1)] + fib [(i - 2)]) '. – dcg

Antwort

1

Es gibt nur 2 Elemente in Ihrer Liste, auf i=2 Iteration, wird es eine ArgumentOutOfRangeException Ausnahme werfen.

+0

auch wenn ich i = 3 es funktioniert immer noch nicht sollte es funktionieren mit i = 2 sollte es nicht als 2-2 ist 0 und das 0. Element ist das erste Element in der Liste? – User9123

Verwandte Themen