遞歸(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 數列: 1 1 2 3 5 8... 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;   } }
相關文章
相關標籤/搜索