C#递归题目实例代码


下面是一个C#中使用递归的经典实例代码,这个例子演示了如何使用递归计算斐波那契数列的第n项。斐波那契数列是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...,其中每个数(从第三项开始)都是前两个数的和。


using System;

class Program
{
    static void Main(string[] args)
    {
        int n = 10; // 计算斐波那契数列的第10项
        Console.WriteLine($"斐波那契数列的第{n}项是: {Fibonacci(n)}");
    }

    // 使用递归计算斐波那契数列的第n项
    static int Fibonacci(int n)
    {
        if (n <= 1)
        {
            // 递归结束条件
            return n;
        }
        else
        {
            // 递归调用
            return Fibonacci(n - 1) + Fibonacci(n - 2);
        }
    }
}

请注意,这个递归实现虽然简单易懂,但在计算较大的n值时效率非常低,因为它会重复计算很多相同的子问题。在实际应用中,我们通常会使用动态规划或备忘录(memoization)技术来优化这种递归算法。