1. 程式人生 > 其它 >自我監督學Java第一天--使用遞迴方法寫1-N的和以及N的階乘

自我監督學Java第一天--使用遞迴方法寫1-N的和以及N的階乘

技術標籤:javajava

遞迴可以理解成方法自己呼叫方法自己,所以一旦使用不當就可能導致溢位錯誤
一般情況下是不使用遞迴方法的

一,首先不使用遞迴的方式分別寫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);
	}
	

新手上路,歡迎各位大佬批評指正!