/**
* 递归算法
* @author timmy1
*
*/
public class Recursion {
/**
* 求n的阶乘
* @param n
*/
public int factorial(int n){
if(n == 1){
return 1;
}else{
return n*factorial(n-1);
}
}
/**
* 超能生兔子
* @param month 月份
* @return
*/
public int RabbitGrow(int month){
if(month ==1 || month == 2){//第一个月和第二个月份的时候只有一对兔子,到第三个月的时候,兔子开始繁殖一对兔子
return 1;
}else{
return RabbitGrow(month-1)+RabbitGrow(month-2);
}
}
public static void main(String[] args) {
Recursion recursion = new Recursion();
// for(int i = 1;i < 10;i++){
// System.out.println(i+"的阶乘结果为:"+recursion.factorial(i));
// }
for(int i = 1;i < 12;i++){
System.out.println(i+"月份兔子数结果为:"+recursion.RabbitGrow(i));
}
}
}
结果打印:
1月份兔子数结果为:1
2月份兔子数结果为:1
3月份兔子数结果为:2
4月份兔子数结果为:3
5月份兔子数结果为:5
6月份兔子数结果为:8
7月份兔子数结果为:13
8月份兔子数结果为:21
9月份兔子数结果为:34
10月份兔子数结果为:55
11月份兔子数结果为:89