2018.3.31 java中的遞迴

來源:互聯網
上載者:User

標籤:使用   定義   執行個體   code   print   return   system   gpo   post   

java中的遞迴1.概念
    定義一個方法時,出現本方法調用本方法的過程,稱之為遞迴
2.特點
    必然有一個邊界條件    使用遞迴代碼往往更簡潔,可讀性強
3.什麼時候使用遞迴
n的階乘和n的累加定義        f(n) =1      f(n)=f(n)*f(n-1)
4.普通實現與遞迴實現的比較
普通實現    //計算5的階乘    public class Demo {    public static void main(String[] args) {        int sum = 1;        for (int i =5; i >=1; i--) {            sum *= i;        }        System.out.println(sum);    }}遞迴實現:/** *在main函數外面定義方法,不然會報錯 * * 計算5的階乘(result = 5*4*3*2*1) */public class Demo {    public static void main(String[] args) {        System.out.println(f(5));    }    public static int f(int n) {        if (1 == n){            return 1;        }else{            return n * f(n - 1);        }    }}
6.按照遞迴的三個條件來分析
    邊界條件:階乘,乘到最後一個數,返回1,程式執行到底    遞迴前進段:當前的參數不等於1的時候,繼續調用自身;    遞迴返回段:從最大的數開始乘,如果當前參數是5,那麼就是5*4,即5*(5-1)即n*(n-1)
7.經典遞迴演算法執行個體----斐波那契數列
package com.lanqiao.demo2;/** * 斐波那契序列 *  * @author qichunlin * */public class Test {    public static void main(String[] args) {        System.out.println(f(4));        }        public static int f(int n){        if(n==1||n==2){            return 1;        }else{            return f(n-1)+f(n-2);        }    }}

2018.3.31 java中的遞迴

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.