笔试无法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 新疆

相关推荐

面经:总共28分钟,面试官不凶但也不温柔1、自我介绍2、讲一下项目3、看你的很多项目都用了springboot,讲一下springboot是什么以及特点4、你的项目数据库是怎么设计的5、讲一下你的项目在进行测试的时候发现了哪些问题6、讲一下你怎么使用jmeter进行的性能测试7、发现吞吐量过小和进程阻塞,要怎么进行优化8、讲一下你开发的那个游戏冰冻子弹射出后对怪物造成影响的逻辑9、看你也有开发经历,为什么不从事后端开发或游戏开发,而来应聘测试10、作为一个测试工程师,当你发现一个bug时你要怎么处理11、你玩哪些游戏,发现过哪些bug12、你刚刚说QQ飞车手游源极之星机甲的双特性bug,为它设计测试用例点点互动25届锐计划精英校招全球启动!【项目简介】“锐计划”精英校招是点点互动面向校园顶尖人才推出的招募及培养专项。我们在全球范围内持续吸引和招募极端热爱游戏创作,乐观坚韧、自驱创新、共情共赢、拥抱变化的优秀青年人才,加入游戏行业,共创游戏未来!【开放岗位】游戏策划、广告创意策划、海外广告投放、游戏美术设计、游戏前端工程师、游戏后端工程师【薪酬待遇】行业TOP薪酬与福利(商业保险、超长年假、节日福利等)+顶尖导师指导与优秀的团队相伴+定制化的培养+丰富的项目实践机会【内推码】EV3P18【内推链接】https://career.centurygames.cn/campus/jobs?shareId=d5298fc3-3525-44cc-bbec-1cfadbc68946&amp;shareSource=1投递得uu留下姓名缩写和岗位~会全程跟进~
点点互动
|
校招
|
10个岗位
点赞 评论 收藏
分享
点赞 5 评论
分享
牛客网
牛客企业服务