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("請(qǐng)輸入一個(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í)例對(duì)學(xué)習(xí)算法的朋友能有所幫助。
相關(guān)文章
C#開發(fā)Windows UWP系列之對(duì)話框MessageDialog和ContentDialog
這篇文章介紹了C#開發(fā)Windows UWP系列之對(duì)話框MessageDialog和ContentDialog,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法
下面小編就為大家分享一篇C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01
C# Socket連接請(qǐng)求超時(shí)機(jī)制實(shí)現(xiàn)代碼分享
這篇文章主要介紹了C# Socket連接請(qǐng)求超時(shí)機(jī)制實(shí)現(xiàn),下面提供代碼分享,大家可以參考使用2013-12-12
C#函數(shù)式編程中的遞歸調(diào)用之尾遞歸詳解
這篇文章主要介紹了C#函數(shù)式編程中的遞歸調(diào)用詳解,本文講解了什么是尾遞歸、尾遞歸的多種方式、尾遞歸的代碼實(shí)例等內(nèi)容,需要的朋友可以參考下2015-01-01

