為了加深對函數遞歸調用過程中的理解,本Demo程序特意在VS2008 C#控制台程序實現了階乘的計算功能,用於觀察函數遞歸調用過程中的調用堆棧的情況。
源碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace RecursiveTset { class Program { //階乘的定義:n!=n*(n-1)!,特別的,1!=1;0!=1 //階乘的實現:采用遞歸調用方式。主要測試和觀察遞歸過程中的函數堆棧的調用情況! public static int JiechengFun(int num) { int result=1; if (num == 0) result = 1; if (num >= 1) result = num * JiechengFun(num - 1); return result; } static void Main(string[] args) { int res = Program.JiechengFun(4); System.Console.WriteLine(res); } } }
函數遞歸調用過程中的調用堆棧的情況截圖如下: