递归是一种通过调用自身的函数来解决问题的方法。计算阶乘是一个经典的递归问题,下面是一个使用C#编写的计算阶乘的递归算法示例:
using System;

class Program
{
    static void Main()
    {
        int n = 5; // 要计算阶乘的数

        // 调用递归函数计算阶乘
        long result = Factorial(n);

        Console.WriteLine($"阶乘 {n} 的结果是: {result}");
        Console.ReadLine();
    }

    // 递归函数计算阶乘
    static long Factorial(int n)
    {
        // 基本情况:0的阶乘为1
        if (n == 0)
            return 1;

        // 递归情况:n的阶乘为n乘以(n-1)的阶乘
        return n * Factorial(n - 1);
    }
}

在上述代码中,Factorial 方法是一个递归函数,用于计算输入整数 n 的阶乘。递归的基本情况是当 n 等于0时,阶乘为1。递归情况是 n 的阶乘等于 n 乘以 (n-1) 的阶乘。递归函数在满足基本情况时返回结果,否则调用自身。

注意:虽然递归是一种优雅的解决方案,但在处理大数字时可能导致栈溢出,因此对于大型输入,考虑使用迭代或其他更高效的算法。


转载请注明出处:http://www.pingtaimeng.com/article/detail/6375/C#