2,某农场引进一只兔子,该兔到了第3个月就会产下一只小兔,从此之后每月产下一只小兔。而小兔也一样,到了出生后的第三个月也会产下一只小兔,之后每个月都会产下一只小兔,以此类推, 8个月后这个农场一共有多少只兔子?(使用递归算法)public static int con(int n) {
if (n > 2) {
return con(n - 1) + con(n - 2);
}
return 1;
} public static void main(String[] args) {
System.out.println(con(8));
}
不过我看不懂....能帮我解释下最好。应该还有很多方法。看看你们都怎么想的。这样理解起来快点谢谢了

解决方案 »

  1.   

    这是明显的迭代函数(本函数调用本函数),还有个特征就是要有一个退出迭代的函数
    public static int con(int n) {
    if (n > 2) {
    return con(n - 1) + con(n - 2);//调用迭代
    }
    return 1;//退出迭代
    }public static void main(String[] args) {
    System.out.println(con(8));//调用函数
      

  2.   

    能这样递归是这些兔子的生产规律都是一致的刚出生的子兔和刚出生的父兔的家族树是相似的
    而第二个月的父兔撤掉他第三个月新生子兔那一个分支后家族树与前两者也是相似的,因此:
    三者都可以用同一计算种群数量计算法则
    con(n) = con(n - 1) + con(n - 2)    (n>=2)
      

  3.   

    21 right,自己调用自己就是迭代!有相同的规律就可以用迭代!
      

  4.   

    也就是说除了第一,二个月之外
    当n>2的时候兔子的数量就等于前面二个月的数量相加
    也就是con(n)=con(n-1)+con(n-2);