各位小夥伴們大家好,在之前的文章中小編介紹了Java之使用遞歸計算1-n之間的和,這次小編要介紹的是,用遞歸求階乘。
階乘:所有小於及等於該數的正整數的積
n的階乘:n!=n*(n-1)*……*3*2*1
分析:其實這與累和類似,之不過換成了乘法運算,推理得出:n!=n*(n-1)!
練習:使用遞歸計算階乘,代碼如下:
public class Demo03Recurison {
public static void main(String args[]) {
int s=sum(5);
System.out.println(s);
}
/*定義一個計算階乘的方法
5的階乘:5!=5*(5-1)*(5-2)*……*(5-4)
遞歸結束的條件:獲取到1的時候結束
遞歸的目的:獲取下一個被乘的數字(n-1)*/
private static int sum(int n) {
//獲取到1的時候結束
if(n==1) {
return 1;
}
//獲取下一個被乘的數字(n-1)
return n*sum(n-1);
}
}
關於用遞歸計算階乘,其實遞歸的主體不變,可是遞歸的參數會發生變化,一開始是5,然後是4,最後會變成1,其實原理和遞歸求和差不多,這個代碼也只是就之前的代碼改變了一下符號。小編就先說到這裡,希望這篇文章可以幫到大家,也歡迎各位小夥伴補充和糾錯。
圖片來自網絡,如有侵權,請聯繫作者刪除