Числа фибоначчи через массив - C#

Формулировка задачи:

Не удается мне построить простенькую программку которая выдает n-ое число фиброначчи. Никак не могу подобрать ограничение в цикле чтобы не выбегать за границы. Еще попробую индексаторы подключить, но по мне так это наверное не самый логичный и короткий вариант.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            decimal[] fib = new decimal[n];
            decimal c;
            decimal a = 0;
            decimal b = 1;
            for (int j=0,i = 1, k = 2;(j < n)^ (i < n)^ (k < n) ;j+=3,i+=3,k+=3) 
            {
                fib[j] = a;
                fib[i] = b;
                c = a + b;
                fib[k] = c;
                a = c + b;
                b = c + a;
              
            }
            Console.WriteLine(fib[n - 1]);
            Console.ReadKey();
        }
    }
}

Код к задаче: «Числа фибоначчи через массив - C#»

textual
        private static long[] Fibonacci(int n)
        {            
            if (n <= 0)
                return null;
            long[] a = new long[n];            
            a[0] = 0;
            a[1] = 1;
            for (int i = 2; i <= n; i++)
               a[i] = a[i-1] + a[i-2];
            return a;
        }

14   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ