黑马程序员技术交流社区
标题:
解答兔子问题
[打印本页]
作者:
(_演绎、青春
时间:
2015-1-10 23:26
标题:
解答兔子问题
本帖最后由 (_演绎、青春 于 2015-1-10 23:39 编辑
/*思考题:兔子问题
*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
*小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
*问第20个月的兔子对数为多少?
*/
public class TuZi {
public static void main(String[] args) {
// 用数组做
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
// arr[2] = arr[0] + arr[1];
// arr[3] = arr[1] + arr[2];
// arr[4] = arr[2] + arr[3];
// ...
// arr[19] = arr[17]+arr[18]
for (int x = 2; x < arr.length; x++) {
arr[x] = arr[x - 2] + arr[x - 1];
}
System.out.println(arr[19]); // 6765
System.out
.println("------------------------------------------------------------");
// 变量的交换实现
int a = 1;
int b = 1;
for (int x = 0; x < 18; x++) {
// 定义临时变量,记录以前的a
int temp = a;
a = b;
b = temp + b;
}
System.out.println(b);
System.out
.println("------------------------------------------------------------");
// 用递归实现
System.out.println(fib(20));
}
/*
* 递归其实就是方法调用方法本身: 假设fib(n)表示第n个月的兔子对数。 第n-1个月和第n-2个月的兔子对数:
* fib(n-1),fib(n-2)
*/
public static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n - 2) + fib(n - 1);
}
}
}
复制代码
作者:
outsider1020
时间:
2015-1-11 17:08
斐波拉契数列啊。。。。。
作者:
初见。
时间:
2015-1-11 18:00
额 好难感觉
作者:
(_演绎、青春
时间:
2015-1-12 11:13
outsider1020 发表于 2015-1-11 17:08
斐波拉契数列啊。。。。。
:lol是滴
作者:
(_演绎、青春
时间:
2015-1-12 11:14
初见。 发表于 2015-1-11 18:00
额 好难感觉
理清思路就不难啦 呵呵
作者:
刘建华
时间:
2015-1-12 11:40
好难感觉
作者:
菜鸟一号
时间:
2015-1-18 09:10
斐波拉契数列就是兔子问题吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2