斐波那契数列在C#中的递归解法有哪些

   2024-09-30 4600
核心提示:在C#中,实现斐波那契数列的递归解法主要有两种方法:递归函数和记忆化递归递归函数:using System;class Program{static void M

在C#中,实现斐波那契数列的递归解法主要有两种方法:递归函数和记忆化递归

递归函数:
using System;class Program{    static void Main(string[] args)    {        int n = 10; // 输入需要计算的斐波那契数列项数        Console.WriteLine($"Fibonacci({n}) = {Fibonacci(n)}");    }    static int Fibonacci(int n)    {        if (n <= 1)            return n;        else            return Fibonacci(n - 1) + Fibonacci(n - 2);    }}

这种方法的缺点是效率较低,因为存在大量重复计算。

记忆化递归:
using System;using System.Collections.Generic;class Program{    static void Main(string[] args)    {        int n = 10; // 输入需要计算的斐波那契数列项数        Dictionary<int, int> memo = new Dictionary<int, int>();        Console.WriteLine($"Fibonacci({n}) = {Fibonacci(n, memo)}");    }    static int Fibonacci(int n, Dictionary<int, int> memo)    {        if (n <= 1)            return n;        if (!memo.ContainsKey(n))        {            memo[n] = Fibonacci(n - 1, memo) + Fibonacci(n - 2, memo);        }        return memo[n];    }}

这种方法通过使用字典(Dictionary)存储已经计算过的斐波那契数列项,从而避免了重复计算,提高了效率。

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

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