思维逻辑练习题:
一对成年耗子,每个月都可以生一对小耗子。小耗子长3个月后成年,即从第4个月开始也可以每月生一对小耗子。问开始时只有1对成年耗子,24个月以后一共有多少只耗子?
问题分析图解:
如果所示:所有的耗子中分为四类:①老耗子(可以生小耗子的耗子4个月大)
②一月耗子(出生了一个月) 类推:③二月耗子 ④三月耗子
当月的老耗子=上个月老耗子 + 上个月三月耗子
当月的三月耗子 = 上个月二月耗子
当月二月耗子 = 上个月一月耗子
当月一月耗子 = 老耗子 (有多少老耗子当月就出出生多少一个月的耗子)
代码实现:
public class MaoPao {
public static void main(String[] args) {
// TODO Auto-generated method stub
//所有的耗子中分为四类:①老耗子(可以生小耗子的耗子4个月大)
//②一月耗子(出生了一个月) 类推:③二月耗子 ④三月耗子
int old = 1;
int first = 0;
int second = 0;
int third = 0;
//需要算几月i就小于几
for(int i = 0 ; i < 24;i++){
old = old + third;//这个月的老耗子=上个月老耗子 + 上个月三月耗子
third = second;//这个月的三月耗子 = 上个月二月耗子
second = first;//这个月二月耗子 = 上个月一月耗子
first = old;//有多少老耗子当月就出出生多少一个月的耗子
}
System.out.println((old + first + second + third)*2);//24月后所有老鼠总数25328
}
}