笔试无法a的题,是我脑回路太清奇?大神救救孩子~

先上题:母牛从3-7岁初,每年会生产一头小母牛,10岁后死亡(10岁任然存活),假设初始有一头刚出生的母牛,请问第n年有多少头母牛?(年从第一年开始计数)
注:第三年初会出生 第一头母牛,故第三年有两头母牛
第五年初,第三年出生的母牛会生产,故第五年有五头母牛
岁数是虚数
示例:
输入
输出
2
1
3
2
4
3
5
5
12
123

🤣🤣🤣我感觉我写的还行啊,为什么输入12输出的不是123,其他示例都对的呀,嘤嘤嘤
白痴不配a这道题吗😭😭😭😭😭😭
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int year = scan.nextInt();
        /**
         * 数组里放入每一头牛的岁数,
         * 方便在3-7岁生牛,和10岁死亡
         * 第一年先赋值一头1岁的牛
         */
        int [] age = {1};
        
        //按照输入的年份循环,每一年进行计算
        for(int i =0;i<year ; i++){
            //每年,先把每头牛的岁数+1,大于十岁的牛牛从数组去掉
            age = increase(age);
            //前面岁数+1后,计算牛牛岁数3-7的个数,按照个数增加岁数为1的牛进数组
            age = birth(age);
        }
        //你知道为什么都比结果大1,所以就减去1。。。。。。
        System.out.println(age.length-1);
        
    }
    
    public static int[] birth(int [] age){
        //找出年龄3-7牛牛的个数
        int num = 0;
        for(int i = 0 ; i < age.length ; i++){
            if(age[i] >= 3 && age[i] <= 7){
                num++;
            }
        }
        
        //在新数组中加上新生,年龄为1的小牛牛
        int[] newAge = new int [age.length+num]; 
        for(int i = 0 ; i < age.length ; i++){
            newAge[i] = age[i] + 1;
        }
        for(int j=0 ; j < num ; j++){
            newAge[age.length+j] = 1;
        }
        
        return newAge;
    }
    
    public static int[] increase(int[] age){
        //每头牛的岁数+1,放进新的数组里
        int[] newAge = new int [age.length];
        for(int i = 0 ; i < age.length ; i++){
            newAge[i] = age[i] + 1;
        }
        
        //计算大于10岁的牛的个数
        int death = 0;
        for(int i = 0 ; i < newAge.length ; i++){
            if(newAge[i] > 10){
                death++;
            }
        }
        
        //因为小的在后面,所以大于10的在前面,就把前面大于10岁的牛从数组删除
        int[] newnew = new int[newAge.length-death];
        for(int i = 0 ; i < newnew.length ; i++){
            newnew[i] = newAge[death+i];
        }
        return newnew;        
    }

}


#笔试题目##字节跳动##题解##笔经#
全部评论
刚刚自己整理的,希望对大家有所帮助:
点赞 回复
分享
发布于 2019-04-27 14:39
我12能a 但是只通过10%
点赞 回复
分享
发布于 2019-04-27 12:40
博乐游戏
校招火热招聘中
官网直投
这个需要在自己的main 里写scan 吗?我自测是对的但是没写scan,还有和我一样菜的不😂
点赞 回复
分享
发布于 2019-04-27 12:50
母牛第一年几岁呢?(实岁)
点赞 回复
分享
发布于 2023-09-24 18:55 新疆

相关推荐

点赞 评论 收藏
转发
点赞 5 评论
分享
牛客网
牛客企业服务