递归注意事项:
- A:递归一定到递归出来,要设置一个条件,当条件满足的时候就退出递归
- B:递归的次数不能太多,否则就内存溢出,因为每递归异常,都产生一个线程
- C:构造方法不能递归使用
// 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
// 1,1,2,3,5,8...
for (int i = 1; i <=30; i++) {
System.out.println("第"+i+"个月兔子数量为"+tuZhi(i));
}
}
private static int tuZhi(int n) {
if(n==2||n==1){
return 1;
}else{
}
return tuZhi(n-1)+tuZhi(n-2);
}
输出:
第1个月兔子数量为1
第2个月兔子数量为1
第3个月兔子数量为2
第4个月兔子数量为3
第5个月兔子数量为5
第6个月兔子数量为8
第7个月兔子数量为13
第8个月兔子数量为21
第9个月兔子数量为34
第10个月兔子数量为55
第11个月兔子数量为89
第12个月兔子数量为144
第13个月兔子数量为233
第14个月兔子数量为377
第15个月兔子数量为610
第16个月兔子数量为987
第17个月兔子数量为1597
第18个月兔子数量为2584
第19个月兔子数量为4181
第20个月兔子数量为6765
第21个月兔子数量为10946
第22个月兔子数量为17711
第23个月兔子数量为28657
第24个月兔子数量为46368
第25个月兔子数量为75025
第26个月兔子数量为121393
第27个月兔子数量为196418
第28个月兔子数量为317811
第29个月兔子数量为514229
第30个月兔子数量为832040
1
2
3
4
总内存图解