在 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
的阶乘,从而实现递归计算。
需要注意的是,递归函数在处理大数值或深层递归时可能会导致堆栈溢出。因此,在实际应用中,需要谨慎使用递归,并确保递归有明确的终止条件,以避免无限递归或堆栈溢出的问题。