2017-11-01 5 views
-4

나는 1 백만 미만의 숫자에 대해 피보나치 시퀀스를 만든 다음 시퀀스의 모든 짝수의 합계를 찾으려고합니다.System.ArgumentOutOfRangeException : fibonnaci 시퀀스를 만들 때

피보나치 시퀀스로 목록을 만든 다음 mod와 for 루프를 사용하여 짝수 (n % 2 = 0)를 찾은 다음 추가합니다. 그러나 피보나치 시퀀스를 만들려고 할 때 발생합니다 이 오류 : 나는이 문제를 해결할 수 있도록

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

이없는 빌드 오류와 함께 제공 : 여기

System.ArgumentOutOfRangeException.

내 코드입니다. 나는 i - 2가 문제가 무엇인지와 C#이 제시하는 것 인 음수를 발생시킬 수 있다고 생각했지만 그것이 사실이라고 생각하지 않습니다.

+0

indexer 'fib [i]'대신'fib.Add'를 사용해야합니다. 즉, fib.Add (fib [(i-1)] + fib [(i-2)])'입니다. – dcg

답변

1

목록에 두 개의 요소 만있는 경우 i=2 반복에서 ArgumentOutOfRangeException 예외가 발생합니다.

+0

내가 i = 3 일 때도 여전히 작동하지 않습니다. i = 2로하지 말아야합니다. 2-2는 0이고 0 번째 요소는 목록의 첫 번째 요소입니까? – User9123