這篇文章主要介紹java中怎么創(chuàng)建遞歸例子,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
站在用戶的角度思考問題,與客戶深入溝通,找到那坡網(wǎng)站設計與那坡網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋那坡地區(qū)。創(chuàng)建java遞歸的方法:首先創(chuàng)建明確的遞歸結束條件;然后設置判斷條件,代碼為【private static int sumNum(int n){if (n == 1){return 1;}return n + sumNum(n-1)}】。
創(chuàng)建java遞歸的方法:
程序調用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種算法在程序設計語言中廣泛應用。 一個過程或函數(shù)在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規(guī)模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。
首先,我們來看一下最簡單的求和例子。
<span style="font-size:18px;">public static void main(String[] args) { System.out.println(sumNum(100)); //輸出:5050 } //求1-100的和 private static int sumNum(int n) { if (n == 1) { return 1; } return n + sumNum(n-1); }</span>
下面我們用遞歸實現(xiàn)斐波那契數(shù)列。
斐波那契數(shù)列,又稱黃金分割數(shù)列,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、……在數(shù)學上,斐波納契數(shù)列以如下被以遞歸的方法定義:F(0)=0,F(xiàn)(1)=1,F(xiàn)(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在現(xiàn)代物理、準晶體結構、化學等領域,斐波納契數(shù)列都有直接的應用。
//用遞歸求解 public static int fib(int n) { if (n == 0) return 0; if (n == 1 || n == 2) return 1; return fib(n - 1) + fib(n - 2); } //用循環(huán)求解 public static int fib2(int n) { int a = 0, b = 1, c = 1; if (n == 0) return 0; if (n == 1 || n == 2) return 1; for (int i = 0; i < n - 1; i++) { c = a + b; a = b; b = c; } return c; } //用數(shù)組求解 public static int fib3(int n) { int[] arr = new int[n + 1]; arr[0] = 0; arr[1] = 1; for (int i = 2; i <= n; i++) { arr[i] = arr[i - 1] + arr[i - 2]; } return arr[n]; }
下面再來看一下另外一個例子,計算階乘。
階乘是基斯頓·卡曼(Christian Kramp,1760~1826)于 1808 年發(fā)明的運算符號,是 數(shù)學術語。
一個正整數(shù)的 階乘( 英語: factorial)是所有小于及等于該數(shù)的 正整數(shù)的 積,并且有0的階乘為1。 自然數(shù)n的階乘寫作n!。 亦即n!=1×2×3×...×n。階乘亦可以 遞歸 方式定義:0!=1,n!=(n-1)!×n。
//用遞歸計算階乘 public static int jc(int n) { //結束條件 if ( n == 1) return 1; //遞歸條件 return n * jc(n-1); } //用for循環(huán)實現(xiàn)階乘 public static int jc2(int n) { int sum = 1; for (int i = 1; i <= n; i++) { sum *= i; } return sum; }
遞歸的條件:
1、 結束條件: 必須有一個明確的遞歸結束條件,稱為遞歸出口。
2、 遞歸條件: 遞歸的運算法則.
遞歸的特點:
1、簡潔明了: 遞歸算法,一般讓人一眼就能看出運算結構,很接近于數(shù)學自然語言。
2、內存消耗大:在遞歸調用的過程當中系統(tǒng)為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數(shù)過多容易造成棧溢出等。所以一般不提倡用遞歸算法設計程序。
以上是java中怎么創(chuàng)建遞歸例子的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道!
本文標題:java中怎么創(chuàng)建遞歸例子-創(chuàng)新互聯(lián)
當前路徑:http://muchs.cn/article16/dpjedg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、商城網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站改版、營銷型網(wǎng)站建設、手機網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容