自我監督學Java第一天--使用遞迴方法寫1-N的和以及N的階乘
阿新 • • 發佈:2020-12-16
遞迴可以理解成方法自己呼叫方法自己,所以一旦使用不當就可能導致溢位錯誤
一般情況下是不使用遞迴方法的
一,首先不使用遞迴的方式分別寫1-N的累加和N的階乘
1-N的累加
public class Sum {
public static int sum(int a) {//定義一個int返回值型別
int result = 0;
for(int i=1;i<=a;i++) {//使用for迴圈 還可以這樣寫for(int i = a; i>=1; i--)
result += i ;
}
return result;//返回值型別不為void,所以必須有一個return 返回值
}
N的階乘
其實跟累加是一樣的,只需要把+改成*即可
public static int jiecheng(int a) {
int result = 1; //因為是相乘,所以result不能為0
for(int i = 1; i<=a; i++) {//或者for(int i = a; i>=1; i--)
result*=i;
}
return result;
}
二,使用遞迴的方法分別寫1-N的累加和N的階乘
1-N的累加
public static int sum1(int a) {
if(a == 1) { //當a等於1時,停止方法的繼續呼叫,開始彈棧
return 1;
}
return a + sum1(a-1);//其實這裡就是a+ a-1 +(a-1)-1 +((a-1)-1)-1 +......直到a等於1
}
N的階乘
public static int jiecheng1(int a) {
if(a == 1) {
return 1;
}
return a*jiecheng1(a-1);
}
新手上路,歡迎各位大佬批評指正!