本帖最后由 刘伟平 于 2012-10-17 16:43 编辑
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第
三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
我这样写可以吗?还有什么需要改进的?- /*
- 【程序1】
- 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
- 小兔子长到第三个月后每个月又生一对兔子,
- 假如兔子都不死,问每个月的兔子总数为多少?
- 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
- 思路:
- 1、定义变量,分别保存1个月的新生兔子数量、2个月的兔子数量和超过3个月的成年兔子数量。
- 2、每个月,兔子年龄长大一个月,计算出各年龄兔子的数量。新生兔子数量等于年龄增加后成年兔子的数量。
- 3、返回指定月份两种兔子数。
- */
- class Test01
- {
- public static void main(String[] args)
- {
- System.out.println(rabCount(10));
- }
- public static int rabCount(int month)
- {
- int newCount = 1;
- int midCount = 0;
- int oldCount = 0;
- for (int n = 0; n<month ; n++ )
- {
- //新的一个月,各年龄兔子的数量变化
- oldCount += midCount;
- midCount = newCount;
- newCount = oldCount;
- System.out.println("new="+newCount+"\tmid="+midCount+"\told="+oldCount+"\tTotal="+(newCount + midCount +oldCount));
- }
- return newCount + midCount +oldCount;
- }
- }
复制代码 |