經典遞歸java編寫的算法


 

 
//1到100相加:
public static void main(String[] args) { System.out.println(f(100)); } //遞歸方法 public static int f(int x){ if(x<2){ return 1; }else{ return f(x-1)+x; } }

 

 

2.斐波那契數列  生兔子

題目:古典問題:3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

分析:首先我們要明白題目的意思指的是每個月的兔子總對數;假設將兔子分為小中大三種,兔子從出生后三個月后每個月就會生出一對兔子,

那么我們假定第一個月的兔子為小兔子,第二個月為中兔子,第三個月之后就為大兔子,那么第一個月分別有1、0、0,第二個月分別為0、1、0,

第三個月分別為1、0、1,第四個月分別為,1、1、1,第五個月分別為2、1、2,第六個月分別為3、2、3,第七個月分別為5、3、5……

兔子總數分別為:1、1、2、3、5、8、13……

於是得出了一個規律,從第三個月起后面的兔子總數都等於前面兩個月的兔子總數之和,即為斐波那契數列。

 

 public static void main(String[] args) {
        for(int i = 1;i<=12;i++){
            System.out.println("第"+i+"個月兔子共"+f(i)+"對");
        }
    }
    //遞歸方法
    public static int f(int x){
      if(x<3){
          return 1;
      }else{
       return  f(x-1)+f(x-2);
      }
    }

 


免責聲明!

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



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