1. 阶乘的案例
package day04;
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));
}
}
2. 斐波那契数列
package day04;
public class RecursionDemo1 {
/**
* f(1)=0; 1
* f(2)=1;
* f(3)=1; - f(2)+f(1)
* f(4)=2;f(3)+f(2)
* f=; f(n - 1)+f(n - 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));
}
}
3. 斐波那契数列 引发的兔子繁殖问题分析及实现
分析:
经过月数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
幼仔 对数 | 1 | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 |
成兔对数 | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 |
总体对数 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 |
package day04;
import java.sql.Date;
public class RecursionDemo2 {
/**
* 幼崽 n代表月数
*
* @param n
* @return
*/
static int feiNa( int n) { // 月数
if (n == 0) {
return 1;
} else if (n == 1) {
return 0;
} else if (n == 2) {
return 1;
} else if (n == 3) {
return 1;
} else {
return feiNa (n - 1) + feiNa (n - 2);
}
}
/**
* 成崽 n代表月数
*
* @param n
* @return
*/
static int feiNas( int n) { // 月数
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return feiNas (n - 1) + feiNas (n - 2);
}
}
/**
* 总数 n代表月数
*
* @param n
* @return
*/
static int feiNass( int n) { // 月数
if (n == 0) {
return 1;
} else if (n == 1) {
return 1;
} else {
return feiNass (n - 1) + feiNass (n - 2);
}
}
public static void main(String[] args) {
System. out .println( feiNa (12));
System. out .println( feiNas (12));
System. out .println( feiNass (12));
System. out .println( new Date (2, 11, 1) );
}