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)文章
關(guān)于C#生成MongoDB中ObjectId的實現(xiàn)方法
本篇文章小編為大家介紹,關(guān)于C#生成MongoDB中ObjectId的實現(xiàn)方法。需要的朋友參考下2013-04-04
C#中DataTable實現(xiàn)行列轉(zhuǎn)換的方法
這篇文章主要介紹了C#中DataTable實現(xiàn)行列轉(zhuǎn)換的方法,實例分析了C#操作DataTable的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
C#實現(xiàn)將數(shù)組內(nèi)元素打亂順序的方法
這篇文章主要介紹了C#實現(xiàn)將數(shù)組內(nèi)元素打亂順序的方法,涉及C#數(shù)組遍歷及隨機(jī)數(shù)操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08
C++中const的實現(xiàn)細(xì)節(jié)介紹(C,C#同理)
本篇文章主要是對C++中const的實現(xiàn)細(xì)節(jié)進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01
C# 使用AspriseOCR.dll實現(xiàn)驗證碼識別
這篇文章主要介紹了C# 使用AspriseOCR.dll實現(xiàn)驗證碼識別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

