Java经典算法40题 – 题目1

【程序1】题目:
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

思路:很显然是一个递归的问题,计算兔子的数量:1 1 2 3 5 8 13,得出规律:函数出口是月份小于3,其他的就是上个月的兔子数量+上上一个月兔子的数量。

package org.sixlab.algorithm40;

public class Rabbit {
    public static void main(String\[\] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println("第" + i + "个月的兔子数量:" + countRabbit(i));
        }
    }

    public static int countRabbit(int month) {
        if (month <= 0) {
            return 0;
        } else if (month < 3) {
            return 1;
        } else {
            return countRabbit(month - 1) + countRabbit(month - 2);
        }
    }
}

上一篇
Java经典算法40题 – 题目2 Java经典算法40题 – 题目2
【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 思路:先写一个函数判断传进来的是否是素数,然后for循环101-200之间的所有的数。 package org.sixlab.algorithm40; import j
2014-03-29
下一篇
Java经典算法40题 Java经典算法40题
在网上看到一个《Java经典算法40题》,准备没事就写一篇,其中部分题目可能有点小问题,比如19、38。【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每
2014-03-29