首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 遞迴計算階乘:10! 經典範例與遞迴邏輯解析

     編輯:關於C#

階乘計算是遞迴演算法的經典入門範例。本文展示 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 更適合大數運算

理解遞迴終止條件與堆疊展開過程,是掌握遞迴演算法的關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved