有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总数为多少?

xiaoheixiadao 2010-04-12 08:43:14
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总数为多少?(网上的答案是错的,大家分析一下) 我的分析如下:*
* 第一个月 2
* 第二个月 2
* 第三个月 2+2/2*2=4
*
* 第四个月 4+2=6
* 第五个月 6+2=8
* 第六个月 8+2*2=12
* 第七个月 12+2*2=16
* 第八个月 16+2*2=18
* 第九个月 18+2*2*2=26
* 第十个月 26+2*2*2=34
*
*/
请用java写出实现代码
...全文
2663 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
boss_2012 2012-11-11
  • 打赏
  • 举报
回复

wensefu 2010-04-12
  • 打赏
  • 举报
回复
如果考虑效率,用循环比递归好,递归开销太大。
孤独剑客 2010-04-12
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030226/14/1468297.html#
企-鹅 2010-04-12
  • 打赏
  • 举报
回复
企-鹅 2010-04-12
  • 打赏
  • 举报
回复
Dazzlingwinter 2010-04-12
  • 打赏
  • 举报
回复

public class RabitGame {
public static final int N = 10;
public static void main(String[] args) {
int[] rabits = new int[N+1];
rabits[0] = rabits[1] = rabits[2] = 2;
for(int i=3; i<=N; i++) {
rabits[i] = rabits[i-1] + rabits[i-3];
}

for(int i=0; i<rabits.length; i++) {
System.out.println(i + "个月后兔子的数量为:" + rabits[i]);
}
}
}
/*
0个月后兔子的数量为:2
1个月后兔子的数量为:2
2个月后兔子的数量为:2
3个月后兔子的数量为:4
4个月后兔子的数量为:6
5个月后兔子的数量为:8
6个月后兔子的数量为:12
7个月后兔子的数量为:18
8个月后兔子的数量为:26
9个月后兔子的数量为:38
10个月后兔子的数量为:56
楼上好快呀,O(∩_∩)O哈哈~
*/
ChDw 2010-04-12
  • 打赏
  • 举报
回复
你算错了
第七个月 12+2*2=16

这个错了,因为第四个月还出生了一对,所以应该是12 + 3 * 2 = 18;


int born = 2;
int first = 0;
int second = 0;
int third = 0;

for (int i = 1; i <= 10; i++) {
third += second;
second = first;
first = born;
born = third;
System.out.println("第" + i + "个月:" + (born + first + second + third));
}

dinghun8leech 2010-04-12
  • 打赏
  • 举报
回复
农夫养牛问题的第三个变种。
钱不是问题 2010-04-12
  • 打赏
  • 举报
回复
一只,因为这是只兔爷
jacky花园 2010-04-12
  • 打赏
  • 举报
回复
lz
注意翻本站内相同帖子啊

//农场养牛问题
public class Cow {
public static int count = 0;
public Cow(int year) {
count++;
for (int i = 3 + year; i <= 10; i++) {
new Cow(i);
}
}

public static void main(String[] args) {
new Cow(0);
System.out.println(count);
}
}


10表示10个月,改成n就行
我本是朱 2010-04-12
  • 打赏
  • 举报
回复
曾经有人也在这里讨论过这个问题,只不过是“牛”而不是“兔”。自己找找看吧
amdgaming 2010-04-12
  • 打赏
  • 举报
回复
弟递归 很容易实现啊,楼主 你先分析一下 总结出 通项公式

然后可以用数学归纳法证明你的 归纳,然后用 编程语言 表达出 你的算法 ,just this
xiaoheixiadao 2010-04-12
  • 打赏
  • 举报
回复
谢谢各位!!!

62,609

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧