W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
本文將為大家?guī)硎褂肅#遞歸算法來計算階乘的方法,通過一個簡單實例來說明,供大家參考。
一般來說,想要實現(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);
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: