更新時(shí)間:2019-07-18 來源:黑馬程序員 瀏覽量:
方法的遞歸是指在一個(gè)方法的內(nèi)部調(diào)用自身的過程,遞歸必須要有結(jié)束條件,不然就會(huì)陷入無限遞歸的狀態(tài),永遠(yuǎn)無法結(jié)束調(diào)用。接下來通過一個(gè)案例來學(xué)習(xí)如何使用遞歸算法計(jì)算自然數(shù)之和,如例Example1.java。
public class Example1 {
public static void main(String[] args) {
int sum=getsum(4); //調(diào)用遞歸方法,獲得1~4的和
System.out.println("sum="+sum); //打印結(jié)果
}
//下面的方法使用遞歸實(shí)現(xiàn)求1~n的和
public static int getsum(int n) {
if(n==1){
//滿足條件,遞歸結(jié)束
return 1;
}
int temp=getSum(n-1);
return temp+n;
}
}
運(yùn)行結(jié)果為:
sun = 10
Example1.java中,定義了一個(gè) getSum()方法用于計(jì)算1~n之間自然數(shù)之和。例程中的12行代碼相當(dāng)于在
getSum()方法的內(nèi)部調(diào)用了自身,這就是方法的遞歸,整個(gè)遞歸過在n==1時(shí)結(jié)束。整個(gè)遞歸過程中
getsum()方法被調(diào)用了4次,每次調(diào)用時(shí),n的值都會(huì)遞減。當(dāng)n的值為1時(shí),所有遞歸調(diào)用的方法都會(huì)以相反的順序相繼結(jié)束,所有的返回值會(huì)進(jìn)行累加,最終得到結(jié)果10。
猜你喜歡:
【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營】深圳跨境電商運(yùn)營畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個(gè)工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)5個(gè)工作日就業(yè)率98.18%,最高薪資 17.5k*13薪,全班平均薪資9244元
2025-09-19