階乘計算是遞迴演算法的經典入門範例。本文展示 C# 遞迴實作 10! 計算,並解析遞迴終止條件與呼叫堆疊運作。
using System;
namespace ExFactorial {
class Factorial {
public double Factorial(int num) {
switch (num) {
case 1: return 1;
default: return num * Factorial(num - 1);
}
}
static void Main(string[] args) {
Console.WriteLine("輸入一個整數:");
int num = Convert.ToInt32(Console.ReadLine());
Factorial f = new Factorial();
Console.WriteLine("{0}! 的值為 {1}", num, f.Factorial(num));
}
}
}
num == 1 回傳 1,終止遞迴num * Factorial(num - 1) 將問題規模縮減Factorial(10) → 10 * Factorial(9) → ... → 2 * Factorial(1) → 回傳 1 → 逐層回傳相乘輸入一個整數: 10 10! 的值為 3628800
double 型別可處理較大階乘,但精度有限BigInteger 更適合大數運算理解遞迴終止條件與堆疊展開過程,是掌握遞迴演算法的關鍵。