C#采用遞歸實(shí)現(xiàn)階乘的方法
本文實(shí)例講述了C#采用遞歸實(shí)現(xiàn)階乘的方法,供大家參考之用。通常來說,如果想實(shí)現(xiàn)一個(gè)階乘,比如6 * 5 * 4 * 3 * 2 * 1,首先想到的可能是循環(huán)遍歷。
如下示例所示:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入一個(gè)數(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;
}
}
但以上的階乘還有一種實(shí)現(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)實(shí)現(xiàn)的邏輯相同,且內(nèi)部遞歸方法的參數(shù)可以由外部遞歸方法的參數(shù),經(jīng)過某種算法而獲得,這正是遞歸登場的時(shí)候。
實(shí)現(xiàn)代碼如下:
public static double JieCheng(int number)
{
if (number == 0)
{
return 1;
}
return number * JieCheng(number - 1);
}
希望本文所述實(shí)例對學(xué)習(xí)算法的朋友能有所幫助。
相關(guān)文章
Unity UI實(shí)現(xiàn)拖拽旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了Unity UI實(shí)現(xiàn)拖拽旋轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Visual C#.Net 網(wǎng)絡(luò)程序開發(fā)-Socket篇
Visual C#.Net 網(wǎng)絡(luò)程序開發(fā)-Socket篇...2007-03-03

