遞歸測試

//階乘測試,利用降階思想
public class Recursion {

 /**
  * 5!=5*4!
  * 4!=4*3!
  * 3!=3*2!
  * 2!=2*1!
  * 1!=1;
  */
 static int jieCheng (int n){//假設n=1
  if(n<=1){
   return 1;
  }else{
   return n*jieCheng(n-1);//假設2
  }
 }
 public static void main(String[] args) {
  System.out.println(jieCheng(3));
 }

-----------------------------------------------------------------------------

package day04;

public class RecursionDemo1 {

 /**
  * f(0)=0;
  * f(1)=1;
  * f(2)=1;f(1)+f(0)
  * f(3)=2;f(2)+f(1)
  * f(n)=f(n-1)+f(n-2)
  *
  */
 
 //兔子問題
 /**
  *
  * @param n
  * @return
  */
 //幼崽對數
 static int youzai(int i){
  if(i==0){
   return 1;
  }else if(i==1){
   return 0;
  }else if(i==2){
   return 1;
  }else{
   return youzai(i-1)+youzai(i-2);
  }
 }
 //成兔對數
 static int chengtu(int m){
  if(m==0){
   return 0;
  }else if(m==1){
   return 1;
  }else{
   return chengtu(m-1)+chengtu(m-2);
  }
 }
 //總對數
 static int total(int l){
  if(l==0){
   return 1;
  }else if(l==1){
   return 1;
  }else{
   return total(l-1)+total(l-2);
  }
 }
 static int feiNa(int n){
  if(n==1){
   return 0;
  }else if(n==2){
   return 1;
  }else{
   return feiNa(n-1)+feiNa(n-2);
  }
 }
 public static void main(String[] args) {
  System.out.println(feiNa(4));
  System.out.println("幼崽一年的對數"+youzai(12));
  System.out.println("成兔一年的對數:"+chengtu(12));
     System.out.println("總對一年的對數:"+total(12));
     System.out.println("幼崽二年的對數:"+youzai(24));
     System.out.println("成兔二年的對數:"+chengtu(24));
     System.out.println("總對二年的對數:"+total(24));
 }
}

 


}

發佈了35 篇原創文章 · 獲贊 21 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章