標籤:使用 定義 執行個體 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中的遞迴