Java算法题:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛

对于“到第4年可生育”,我的理解是和不死神兔的“从出生后第3个月起每个月都生一对兔子 ”意思相似,每代新生母牛 3 年后开始生育,不是4年后开始生育(我看过很多网友按照 过四年开始生育 来算的)。

使用递归的方法比较简单,只需要着重考虑单只母牛每年的下崽情况就行,代码如下:

public class Cow{
    public static int amount(int year, int amount){    //计算 这只牛(初代牛/递归传过来的小牛) 每年的下崽情况
        for (int i = 1; i <= year; i++){
            if (i < 4){
                continue;
            }else if(i >= 4 && i < 15){
                amount += 1;    //这只牛每年生一只小牛
                amount = amount(year - i + 1,amount);    //计算 这只牛本年生出的小牛 每年的下崽情况(递归的位置)
            }else if(i >= 15 && i < 20){
                continue;     //这只牛绝育
            }else if(i ==20){
                amount -= 1;    //这只牛死亡
            }else{
                continue;
            }
        }
        return amount;
    }
    public static void main(String[] args) {
        for (int i = 1; i <= 35; i++){
            int amount = 1;
            amount = amount(i,amount);
            System.out.println(i + "年后牛的数量" + amount);
        }
    }
}

1年后牛的数量:1
2年后牛的数量:1
3年后牛的数量:1
4年后牛的数量:2
5年后牛的数量:3
6年后牛的数量:4
7年后牛的数量:6
8年后牛的数量:9
9年后牛的数量:13
10年后牛的数量:19
11年后牛的数量:28
12年后牛的数量:41
13年后牛的数量:60
14年后牛的数量:88
15年后牛的数量:128
16年后牛的数量:187
17年后牛的数量:274
18年后牛的数量:400
19年后牛的数量:584
20年后牛的数量:853
21年后牛的数量:1247
22年后牛的数量:1822
23年后牛的数量:2662
24年后牛的数量:3890
25年后牛的数量:5684
26年后牛的数量:8305
27年后牛的数量:12135
28年后牛的数量:17731
29年后牛的数量:25908
30年后牛的数量:37856
31年后牛的数量:55313
32年后牛的数量:80821
33年后牛的数量:118093
34年后牛的数量:172553
35年后牛的数量:252127

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值