黑马程序员技术交流社区
标题:
java小游戏《兔子生兔子》
[打印本页]
作者:
李-超
时间:
2016-3-25 21:47
标题:
java小游戏《兔子生兔子》
编写程序:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
作者:
赵浩霖
时间:
2016-3-25 21:55
那笔算了下,这个数列有个规律就是,从第三个数开始f(n)=f(n-1)+f(n-2)。也就是一个数等于前两个数的和。可以这样写:
public class TuZi {
public static void main(String[] args) {
System.out.println("第1个月的兔子对数: 1");
System.out.println("第2个月的兔子对数: 1");
int f1 = 1;
int f2 = 1;
int f;//中间变量
int M=24;
for(int i=3; i<=M; i++) {
f = f2;
f2 = f1 + f2;
f1 = f;
System.out.println("第" + i +"个月的兔子对数: "+f2);
}
}
}
不知道对不对
作者:
韩文通
时间:
2016-3-25 22:54
二楼厉害棒棒哒棒棒哒
作者:
lgdbest
时间:
2016-3-25 22:58
递归思想
作者:
李-超
时间:
2016-3-26 21:55
赵浩霖 发表于 2016-3-25 21:55
那笔算了下,这个数列有个规律就是,从第三个数开始f(n)=f(n-1)+f(n-2)。也就是一个数等于前两个数的和。可 ...
牛叉!!!!!!
作者:
hkh3321313
时间:
2016-3-26 22:26
我也在网上看见了这个题目,这个数列是斐波那契数列,据说是很经典的题目,然而我还是没做出来,佩服二楼!
作者:
BugBuff
时间:
2016-3-26 23:51
class FibonacciNumber {
/*
编写程序:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
*/
/*
分析:
规律:
月份 兔子对数
1 1
2 1
3 2 = 1+1;
4 3 = 2+1;
5 5 = 3+2;
前两个月兔子对数都为1,之后每月兔子对数为前两个月之和;
*/
//方案一,数组法
public static void arrays(int month) {
int[] arr = new int[12];
arr[0] = 1; //将数组中第一个元素设置为1代表第一个月兔子的对数
arr[1] = 1; //将数组中第二个元素设置为1代表第二个月兔子的对数
for (int i = 2;i < arr.length;i++ ) {
//利用循环便利依次给数组中的元素赋值,其值分别为前两个元素之和,得到斐波那契数列
arr[i] = arr[i - 2] + arr[i - 1];
}
System.out.println("第" + month + "月,兔子对数为:" + arr[month - 1]);
}
//方案二:递归法(recursion:递归)
public static int recursion(int month) {
int rabbit;
if (month == 1 || month == 2) { //当月数为1或2时返回兔子对数为1
rabbit = 1;
return rabbit;
}else { //当月数大于2时利用递归调用将前两个月的兔子数相加
rabbit = recursion(month - 2) + recursion(month - 1);
return rabbit;
}
}
public static void main(String[] args) {
int month = 10;
arrays(month);
System.out.println("第" + month + "月,兔子对数为:" + recursion(month)); }
作者:
dbymzss
时间:
2016-3-26 23:55
算法不错....
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2