A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘伟平 于 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马