java遞歸 斐波那契數列遞歸與非遞歸實現


  遞歸簡單來說就是自己調用自己,

  遞歸構造包括兩個部分:
  1.定義遞歸頭:什么時候需要調用自身方法,如果沒有頭,將陷入死循環
  2.遞歸體:調用自身方法干什么

  遞歸是自己調用自己的方法,用條件來判斷調用什么時候停止!

  斐波那契數列數列的遞歸實現:  F(n)=F(n-1)+F(n-2)

package test;

public class Test {  
    public static long fibonacci(int n) {
        if(n==0||n==1) return 1;
        else {
            return fibonacci(n-1)+fibonacci(n-2);
        }
    }       
        public static void main(String[] args) {
            for(int i=0;i<10;i++) {
                long num = fibonacci(i);
                System.out.print(num+" ");
            }
            
        }  
}  

 

  斐波那契數列數列的非遞歸實現:  F(n)=F(n-1)+F(n-2)

package test;

public class Test {  
    public static long fibonacci2(int n) {  
        long arr[] = new long[n+1];
        arr[0]=0;
        arr[1]=1;           //n不能為0,因為n為0時,arr大小為1,arr[1]越界。
        for(int i=2;i<=n;i++) {
            arr[i]=arr[i-1]+arr[i-2];
        }
        return arr[n];
    }
   
    public static void main(String[] args) {
        for(int i=1;i<10;i++) {        
            long num = fibonacci2(i);
            System.out.print(num+" ");
        }
        }  
}  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM