一、简介
字节跳动2019春招第三批在线笔试(后端开发工程师)已结束,结果也是凉凉。本文主要是分析这次的题目,并给出代码,以供大家参考和讨论,如有错误之处,还望帮忙指正,谢谢每位优秀的程序员。
二、题目分享
1.【编程题】小牛生小牛问题。
描述:每头牛第1~2年都不生小牛,第3~7年每年生一头小牛,第8~10年不生小牛,牛在第11年死亡。
问:n年后共有多少头牛?
文字分析:我们可以定义一个List(如:List<Integer) cows),里面传入的泛型为Integer,表示小牛的年龄。每过一年,对应的小牛年龄增加,第3~7年给list中添加一个元素,表示生了一头小牛。第11年开始移除一个元素,表示小牛死亡。
- 第1~2年,不生小牛,所以年龄会增加,但是牛的个数不变(cows.set(牛的编号,age+1));
- 第3~7年,年龄会增加,同时还会生一头小牛(cows.set(牛的编号,age+1)、cows.add(new Cow(age=1)));
- 第8~10年,只是年龄增加,也不生小牛了(cows.set(牛的编号,age+1));
- 第11年牛死亡(cows.remove(牛的编号)。