C#中斐波那契数列的数学性质应用

   2024-09-30 8380
核心提示:在C#中,可以利用斐波那契数列的数学性质来解决一些问题生成斐波那契数列:using System;class Program{static void Main(){int

在C#中,可以利用斐波那契数列的数学性质来解决一些问题

生成斐波那契数列:
using System;class Program{    static void Main()    {        int n = 10; // 生成前10个斐波那契数        for (int i = 0; i < n; i++)        {            Console.WriteLine(Fibonacci(i));        }    }    static int Fibonacci(int n)    {        if (n <= 1)            return n;        else            return Fibonacci(n - 1) + Fibonacci(n - 2);    }}
计算斐波那契数列的第n项(使用动态规划):
using System;class Program{    static void Main()    {        int n = 10; // 计算第10项        Console.WriteLine(Fibonacci(n));    }    static int Fibonacci(int n)    {        int[] memo = new int[n + 1];        memo[0] = 0;        memo[1] = 1;        for (int i = 2; i <= n; i++)        {            memo[i] = memo[i - 1] + memo[i - 2];        }        return memo[n];    }}
计算斐波那契数列的第n项(使用矩阵乘法):
using System;class Program{    static void Main()    {        int n = 10; // 计算第10项        Console.WriteLine(Fibonacci(n));    }    static long Fibonacci(int n)    {        if (n <= 1)            return n;        long[,] matrix = { { 1, 1 }, { 1, 0 } };        matrix = MatrixPower(matrix, n - 1);        return matrix[0, 0];    }    static long[,] MatrixPower(long[,] matrix, int n)    {        long[,] result = { { 1, 0 }, { 0, 1 } };        while (n > 0)        {            if ((n & 1) == 1)                result = MatrixMultiply(result, matrix);            matrix = MatrixMultiply(matrix, matrix);            n >>= 1;        }        return result;    }    static long[,] MatrixMultiply(long[,] a, long[,] b)    {        int rows = a.GetLength(0);        int cols = b.GetLength(1);        int inner = a.GetLength(1);        long[,] result = new long[rows, cols];        for (int i = 0; i< rows; i++)        {            for (int j = 0; j< cols; j++)            {                for (int k = 0; k< inner; k++)                {                    result[i, j] += a[i, k] * b[k, j];                }            }        }        return result;    }}

这些示例展示了如何在C#中利用斐波那契数列的数学性质来解决问题。你可以根据需要修改和扩展这些代码。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号