黑马程序员技术交流社区

标题: 古典问题:有一对兔子,从出生后第3个月起每个月都生一... [打印本页]

作者: 刘伟平    时间: 2012-10-14 15:11
标题: 古典问题:有一对兔子,从出生后第3个月起每个月都生一...
本帖最后由 刘伟平 于 2012-10-17 16:43 编辑

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第
三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....


我这样写可以吗?还有什么需要改进的?
  1. /*
  2. 【程序1】
  3. 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
  4. 小兔子长到第三个月后每个月又生一对兔子,
  5. 假如兔子都不死,问每个月的兔子总数为多少?
  6. 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

  7. 思路:
  8. 1、定义变量,分别保存1个月的新生兔子数量、2个月的兔子数量和超过3个月的成年兔子数量。
  9. 2、每个月,兔子年龄长大一个月,计算出各年龄兔子的数量。新生兔子数量等于年龄增加后成年兔子的数量。
  10. 3、返回指定月份两种兔子数。
  11. */
  12. class  Test01
  13. {
  14.         public static void main(String[] args)
  15.         {
  16.                 System.out.println(rabCount(10));
  17.         }

  18.         public static int rabCount(int month)
  19.         {
  20.                 int newCount = 1;
  21.                 int midCount = 0;
  22.                 int oldCount = 0;
  23.                 for (int n = 0; n<month ; n++ )
  24.                 {
  25.                         //新的一个月,各年龄兔子的数量变化
  26.                         oldCount += midCount;
  27.                         midCount = newCount;
  28.                         newCount = oldCount;
  29.                         System.out.println("new="+newCount+"\tmid="+midCount+"\told="+oldCount+"\tTotal="+(newCount + midCount +oldCount));
  30.                 }
  31.                 return newCount + midCount +oldCount;
  32.         }
  33. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2