在C#中,遞歸算法是通過在函數內部調用自身來實現的。以下是一個簡單的遞歸算法示例,用于計算階乘:
using System;
class RecursiveExample
{
static void Main()
{
int number = 5;
long result = Factorial(number);
Console.WriteLine($"{number}的階乘是: {result}");
}
static long Factorial(int n)
{
if (n == 0 || n == 1)
{
return 1;
}
else
{
return n * Factorial(n - 1);
}
}
}
在這個示例中,我們定義了一個名為Factorial
的遞歸函數,該函數接受一個整數參數n
。如果n
等于0或1,函數返回1,否則函數返回n
乘以Factorial(n - 1)
的結果。這就是遞歸的核心思想:每次調用函數時,問題規模都會減小,直到達到基本情況(base case)。
請注意,遞歸算法可能會導致棧溢出錯誤,特別是在處理大量數據時。在這種情況下,可以考慮使用迭代算法或將遞歸算法轉換為非遞歸算法。