在 C#中,递归函数是指在函数内部直接或间接调用自身的函数。递归函数在解决一些问题时非常有用,例如遍历树形结构、递归计算等。
using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
namespace 递归函数
 {
     class Program
     {
         static void Main(string[] args)
         {
             Digui();
            int n = 5;  // 要计算阶乘的数
             int factorial = Factorial(n);
             Console.WriteLine($"阶乘为: {factorial}");
             Console.ReadKey();
         }
        static int i = 0;
        static void Digui()
        {
            Console.WriteLine("我是一个好人");
            Console.WriteLine("我是一个中国人");
            Console.WriteLine("我要记住日本人的罪行");
            //i大于10时,跳出或返回
            i++;
            if(i>=10)
            {
                return;
            }
            Digui();
        }
        public static int Factorial(int n)
        {
            if (n == 0 || n == 1)
            {
                return 1;
            }
            else
            {
                return n * Factorial(n - 1);
            }
        }
     }
 }
结果:

在上述示例中,Factorial函数接受一个整数参数n,并使用递归的方式计算阶乘。如果n为 0 或 1,则返回 1(因为 0 的阶乘和 1 的阶乘都是 1)。否则,将n乘以n-1的阶乘,从而实现递归计算。
需要注意的是,递归函数在处理大数值或深层递归时可能会导致堆栈溢出。因此,在实际应用中,需要谨慎使用递归,并确保递归有明确的终止条件,以避免无限递归或堆栈溢出的问题。