有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
解: 然我们看看 没个月兔子的总数量 1 1 2 3 5 8 13 21 34 。。。。。
靠,这就是一个Fibonacci的问题
java 实现 :
public class TestNIO { public static void main(String[] args) { fibo(7); } /** * :有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? * 0 1 1 2 3 5 8 13 21 .... * @param month */ private static void fibo(int month) { // 从数据的裴烈规律可以看出 这是一个斐波那契数列的问题 /// 定义数据 上个月的数量 上上个月的数量 int pre = 1 ; int prepre = 1 ; /// 总数量 int total ; if(month == 1){ System.out.println("第一个月的数量 :"+1); }else if(month == 2){ System.out.println("第一个月的数量 :"+1); System.out.println("第二个月的数量 : " + 1); }else if(month > 2){ System.out.println("第1个月的数量 :"+1); System.out.println("第2个月的数量 : " + 1); for(int j = 3 ; j <= month ; j++ ){ total = pre + prepre ; System.out.println("第" + j + "个月的总数量 :" + total); prepre = pre ; pre = total ; } } } }
第1个月的数量 :1 第2个月的数量 : 1 第3个月的总数量 :2 第4个月的总数量 :3 第5个月的总数量 :5 第6个月的总数量 :8 第7个月的总数量 :13