//階乘測試,利用降階思想
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));
}
}
}