1、遞歸函數(shù)的概念
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、定西網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5響應式網(wǎng)站、商城建設、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設公司、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為定西等各大城市提供網(wǎng)站開發(fā)制作服務。遞歸是一種針對使用簡單的循環(huán)難以編程實現(xiàn)的問題,提供優(yōu)雅解決方案的技術。簡單來說,遞歸方法是調(diào)用自身的方法。在編程語言中,函數(shù)Func(Type a,……)直接或間接調(diào)用函數(shù)本身,則該函數(shù)稱為遞歸函數(shù)。遞歸函數(shù)不能定義為內(nèi)聯(lián)函數(shù)。
2、實現(xiàn)遞歸的三要素
(1)一定有一種可以退出程序的情況;
(2)總是在嘗試將一個問題化簡到更小的規(guī)模;
(3)父問題與子問題不能有重疊的部分。
3、Java遞歸算法案例
Java中的遞歸函數(shù)如果沒終止條件會造成死循環(huán),所以遞歸代碼里要有結束自調(diào)自的條件。接下來通過一個案例來學習如何使用遞歸算法。
package QianFeng03;
//階乘(遞歸算法)
public class FactorialTest {
public static void main(String[] args){
int result = factor1( 10);
System.out.println(result);
int result1 = factor(10);
System.out.println("遞歸算法:內(nèi)存消耗大容易內(nèi)存溢出"+result1);
}
//---------------遞歸算法,方法本身調(diào)用自己----------------------
public static int factor(int num){
if (num==1)
return 1;
return num*factor(num-1);
}
//---------------普通計算----------------------
public static int factor1(int num){
int result = num;
int i= num-1;
do{
result = result*i;
i--;
}while (i>1);
return result;
}
}
4、遞歸函數(shù)與循環(huán)的關系:
(1)聯(lián)系:
都是通過控制一個變量的邊界(或者多個),來改變多個變量為了得到所需要的值,而反復而執(zhí)行的;都是按照預先設計好的推斷實現(xiàn)某一個值求?。唬ㄕ堊⒁?,在這里循環(huán)要更注重過程,而遞歸偏結果一點)
(2)區(qū)別:
遞歸通常是逆向思維居多,“遞”和“歸”不一定容易發(fā)現(xiàn);而循環(huán)從開始條件到結束條件,包括中間循環(huán)變量,都需要表達出來。簡單的來說就是:用循環(huán)能實現(xiàn)的,遞歸一般可以實現(xiàn),但是能用遞歸實現(xiàn)的,循環(huán)不一定能。因為有些題目①只注重循環(huán)的結束條件和循環(huán)過程,而往往這個結束條件不易表達;②只注重循環(huán)的次數(shù)而不注重循環(huán)的開始條件和結束條件。
文章標題:Java的遞歸函數(shù)是什么?怎么實現(xiàn)?-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://jinyejixie.com/article44/ccsjhe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、品牌網(wǎng)站建設、網(wǎng)站建設、網(wǎng)站策劃、微信公眾號、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容