91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C#中斐波那契數列的數學性質應用

c#
小樊
83
2024-09-10 10:48:19
欄目: 編程語言

在C#中,可以利用斐波那契數列的數學性質來解決一些問題

  1. 生成斐波那契數列:
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);
    }
}
  1. 計算斐波那契數列的第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];
    }
}
  1. 計算斐波那契數列的第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#中利用斐波那契數列的數學性質來解決問題。你可以根據需要修改和擴展這些代碼。

0
上林县| 宝应县| 邵阳市| 全南县| 新昌县| 临洮县| 乐亭县| 武平县| 奉节县| 得荣县| 海丰县| 钦州市| 绩溪县| 宁波市| 密云县| 同仁县| 罗甸县| 彭泽县| 城市| 会东县| 宜昌市| 临沂市| 信阳市| 曲周县| 东莞市| 互助| 永定县| 乌审旗| 永康市| 南雄市| 璧山县| 墨玉县| 高阳县| 德惠市| 海伦市| 南丹县| 仁化县| 防城港市| 蕉岭县| 唐河县| 普陀区|