本文將為大家?guī)?lái)使用C#遞歸算法來(lái)計(jì)算階乘的方法,通過(guò)一個(gè)簡(jiǎn)單實(shí)例來(lái)說(shuō)明,供大家參考。
一般來(lái)說(shuō),想要實(shí)現(xiàn)一個(gè)階乘,比如6*5*4*3*2*1這個(gè)簡(jiǎn)單階乘,一般會(huì)首先想到使用循環(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í)還有另一種實(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),也就是說(shuō)后面數(shù)總是由前面的數(shù)減1得到的。
當(dāng)實(shí)現(xiàn)的邏輯相同,且內(nèi)部遞歸方法的參數(shù)可以由外部遞歸方法的參數(shù),經(jīng)過(guò)某種算法而獲得,這正是遞歸登場(chǎng)的時(shí)候。
遞歸方式實(shí)現(xiàn)代碼如下:
public static double JieCheng(int number){
if (number == 0){
return 1;
}
return number * JieCheng(number - 1);
}
更多建議: