黑马程序员技术交流社区
标题:
不死神兔问题案例
[打印本页]
作者:
xiaoya0o0o
时间:
2015-9-22 21:41
标题:
不死神兔问题案例
/*
* 递归的注意事项:
* 1.要有出口,否则就是死递归;
* 2.次数不能太多,否则就内存溢出;
* 3.构造方法不能递归使用;在编译时,就会编译错误;
* 不死神兔问题案例:
*
* 有一对兔子,从第三个月开始,每月都会生一对小兔子;小兔子也是从第三个月开始,每月也会再生一对
* 小兔子,问:假如兔子不死,第20个月,一共有多少对兔子?
*
* 月份: 1 2 3 4 5 6 .... 20
* 兔子: 1 1 2 3 5 8 .... ? (斐波那契数列)
*
* 方式一:使用数组
* [0] [1] [2] [3] [4] [5] ... [19]
* 1 1 2 3 5 8 ... [17] + [18]
*
* 方式二:使用递归:
*/
public class Demo {
public static void main(String[] args) {
int month = 20;
int[] intArray = new int[month];
for(int i = 0;i < intArray.length ; i++){
if(i == 0 || i == 1){
intArray[i] = 1;
continue;
}
intArray[i] = intArray[i - 1] + intArray[i - 2];
}
System.out.println(month + " 月后,兔子一共有:" + intArray[intArray.length - 1] + " 对");
System.out.println("递归求20个月兔子数:" + fib(20));
}
public static int fib(int m){
if(m == 1 || m == 2){
return 1;
}
return fib(m - 1) + fib(m - 2);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2