也谈一下关于兔子的问题

看大家讨论的那么激烈,也来试一下,

原地址:http://www.cnblogs.com/zuozuo/archive/2011/09/18/2180426.html

题目:

一对小兔子一年后长成大兔子;一对大兔子每半年生一对小兔子。大兔子的繁殖期为4年,兔子的寿命是6年。假定第一年年初投放了一对小兔子,试编程计算,第n年末总共会有多少对兔子。n由键盘输入。(用递归哦)

 

刚开始搞不清楚"繁殖期为4年"是什么意思,最后想了一下应该是可以生四年的小兔吧。不过不知道为什么博主的程序中只有6.5年,而不是7年,如果是6.5年,那也是84只,看一下载图先

 

 

下面是程序:

 

 1 int Year = 7;
 2         int[] rabArr = new int[12];
 3         double a = 0;
 4 
 5         private void Rabbit(int year)
 6         {
 7             if (year <= 0)
 8             {
 9                 return;
10             }
11 
12             int newRabbit = 0;
13 
14             for (int i = 11; i > 0; i--)
15             {
16                 if (i >= 2 && i <= 9)
17                 {
18                     newRabbit += rabArr[i];
19                 }
20                 rabArr[i] = rabArr[i - 1];
21             }
22             rabArr[0] = newRabbit;
23             Rabbit(year - 1);
24         }
25 
26 因为是以半年为单位,所以调用时就这样
27  rabArr[0] = 1//初始化
28 
29 调用,
30  Rabbit(Year * 2);
31 最后数组rabArr 中全部加起来即为总和。

 

 

posted @ 2011-09-21 22:42  南极山  阅读(689)  评论(3编辑  收藏  举报