遞歸(recursion)

遞歸(recursion):簡單來說就是在方法內部對自身進行調用。

 

遞歸求階乘n!:
public class Factorial {
  public static void main(String[] args){
    System.out.println(factorial(9));
  }
    
  //遞歸求階乘n!
  public static int factorial(int n){
    if(n==1||n==0){
      return 1;
    }else{
      return n*factorial(n-1);
    }
  }
}
 
遞歸求Fibonacci數列:112358...9個數的值。數列滿足遞推公式:

    f(1)=1,f(2)=1     f(n)=f(n-1)+f(n-2)(n>2)
public class Fibonacci {
  public static void main(String[] args) {
    System.out.println(fibonacci(9));
    System.out.println(noRecursionFibonacci(9));
  }
  //遞歸求fibonacci的值
  public static int fibonacci(int n){
    if(n==1||n==2){
      return 1;
    }else{
      return fibonacci(n-1)+fibonacci(n-2);
    }
  }
  //非遞歸求fibonacci的值(迭代)
  public static int noRecursionFibonacci(int n){
    if(n==1||n==2){
      return 1;
    }
    int f1 = 1;
    int f2 = 1;
    int f3 = 1;
    for(int i=0;i<n-2;i++){
      f3 = f2+f1;
      f1=f2;
      f2=f3;
    }
    return f3;
  }
}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章