public static void Main()
for (int i =0; i <= 20; i++)
Console.WriteLine("Fibonacci of " + i + " is " + FibonacciByMatrix(i));
public static int FibonacciByMatrix(int n)
int[,] first = {{1,1},{1,0}};
int[,] product = {{1, 0},{0,0}};
product = GetMatrixProduct(product, first);
public static int[,] GetMatrixProduct(int[,] first, int[,] second)
int[,] result = new int[2,2];
result[0,0] = first[0,0] * second[0,0] + first[0,1] * second[1,0];
result[0,1] = first[0,0] * second[0,1] + first[0,1] * second[1,1];
result[1,0] = first[1,0] * second[0,0] + first[1,1] * second[1,0];
result[1,1] = first[1,0] * second[0,1] + first[1,1] * second[1,1];