C#采用遞歸實現(xiàn)階乘的方法
本文實例講述了C#采用遞歸實現(xiàn)階乘的方法,供大家參考之用。通常來說,如果想實現(xiàn)一個階乘,比如6 * 5 * 4 * 3 * 2 * 1,首先想到的可能是循環(huán)遍歷。
如下示例所示:
class Program { static void Main(string[] args) { Console.WriteLine("請輸入一個數(shù)"); int number = Convert.ToInt32(Console.ReadLine()); double result = JieCheng(number); Console.WriteLine(number.ToString() + "的階乘結(jié)果是:" + result.ToString()); Console.ReadKey(); } public static double JieCheng(int number) { if (number == 0) { return 0; } //初始值必須設(shè)置為1 double result = 1; for (int i = number; i >= 1; i--) { result = result*i; } return result; } }
但以上的階乘還有一種實現(xiàn)方式:6 * (6-1) * (6-2) * (6-3) * (6-4) * (6-5) 或 6 * (6-1) * (5-1) * (4-1) * (3-1) * (2-1),也就是說后面數(shù)總是由前面的數(shù)減1得到的。
當(dāng)實現(xiàn)的邏輯相同,且內(nèi)部遞歸方法的參數(shù)可以由外部遞歸方法的參數(shù),經(jīng)過某種算法而獲得,這正是遞歸登場的時候。
實現(xiàn)代碼如下:
public static double JieCheng(int number) { if (number == 0) { return 1; } return number * JieCheng(number - 1); }
希望本文所述實例對學(xué)習(xí)算法的朋友能有所幫助。
相關(guān)文章
Visual C#.Net 網(wǎng)絡(luò)程序開發(fā)-Socket篇
Visual C#.Net 網(wǎng)絡(luò)程序開發(fā)-Socket篇...2007-03-03