//阶乘测试,利用降阶思想
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));
}
}
}