有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

根据题目意思先来缕清一下思路:

第一年 初始值为 1 (也就是刚开始一头母牛)

第二年   2(也就是刚开始一头母牛+一头小母牛) )

第三年   3(也就是刚开始一头母牛+两头小母牛) )

第四年年   4(也就是刚开始一头母牛+三头小母牛) )

第五年   6(也就是刚开始一头母牛+加上四头小母牛+由于第二年生的一头小母牛又生了一头小母牛)

第六年 9(也就是刚开始一头母牛+加上第五头小母牛+由于第三年两头小母牛生了2头+一头母牛生了一头)

那么给出两种解决方法:

    public static void main(String[] args) {
        System.out.println(countCows(5));
    }
    public static int countCows(int years){
        if (years==1) return 1;
        if (years==2) return 2;
        if (years==3) return 3;
        if (years==4) return 4;
        int[] yearsCows = new int[years+1];
        yearsCows[1] =1;
        yearsCows[2] =2;
        yearsCows[3] =3;
        yearsCows[4] =4;

        for(int i=5;i<=years;i++){
            yearsCows[i] = yearsCows[i-1]+yearsCows[i-3];
        }
        return yearsCows[years];
    }

  第二种用递归:

    public static void main(String[] args) {
        System.out.println(countCows(6));
    }
    public static int countCows(int years){
        if (years==1) return 1;
        if (years==2) return 2;
        if (years==3) return 3;
        if (years==4) return 4;
        else {
            return countCows(years-1)+countCows(years-3);
        }



    }

  

posted @ 2024-06-13 17:38  GOZO  阅读(303)  评论(0)    收藏  举报