算法工程师面试试卷。
回答
把剩下的四片分成两半,一半在一堆,另一半在另一堆,第二天每次吃一堆就好。
2.5000的阶乘末尾有几个零?
回答:
1249
因为5的倍数产生一个零,25的倍数产生两个零。
125的倍数产生三个零,625的倍数产生四个零。
3025产生五个零,不管前面的计算结果如何,都比前一个多产生一个零。
5,10,15,5000 ***1000.
25,50,75,...,5000 ***200
125,250,...,5000 ***40.
625,1250,5000 * * * 8.
3125只有1。
所以* * *有1249个零。
3.母牛在3-10岁时,每年可以产下小牛,产下公牛与母牛的比例为50%。等奶牛12岁的时候,她会被送到屠宰场去买。现在有个农民有1头牛1岁。当奶牛3岁时,它们将被送到附近的农场进行繁殖。这个农民在40年后会有多少头奶牛?写相关代码或者回答思路,最好用面向对象的方法。
回答:
Java代码
包com . Polaris . test;
导入Java . util . *;
/**
*问题描述:
*
*母牛在3-10岁时,每年可以产下一头小牛,产下公牛和母牛的比例为50%。
*牛在12岁时被送到屠宰场。现在有一个农民有1头牛1岁。
*奶牛3岁时,被送到附近的农场配种。这个农民40年后可能有多少头牛?
*写相关代码或回答思路,最好使用面向对象。
* @作者北极星
* @版本1.0
*/
公共类ComputeCattleNum {
//拯救所有奶牛
私有静态列表& lt牛& gtcows = new ArrayList & lt牛& gt();
//保存当前农场主所有的奶牛。
私有静态列表& lt牛& gtcattles = new ArrayList & lt牛& gt();
公共静态void main(String[] args) {
//第一头牛
牛牛=新牛(0,3);
cows . add(cow);
// 40年
for(int I = 0;我& lt40;++i) {
//12岁以上的牛被送到屠宰场出售;每年,所有的奶牛
for(int j = 0;j & ltcattles . size();++j) {
黄牛temp = cattles . get(j);
if(temp.getDead()) {
cattles . remove(temp);
}
//刚开始只有一头母猪,年龄没长。
如果(i & gt0) {
cattles.get(j)。grow();
}
}
//母牛生小牛
for(int j = 0;j & ltcows . size();++j) {
牛犊子= cows.get(j)。熊();
如果(小腿!=null) {
if(calf.getSex()==0)
cows.add(小牛);
cattles.add(小牛);
}
}
}
系统。out . println(" 40年后归农民所有"+cattles.size()+"第一头牛");
}
}
牛类{
//牛的雌雄:0代表雌性,1代表雄性。
私人int性别;
//牛的年龄
私人年龄;
//是否出售(死)
私有布尔dead = false
公牛(不同性别,不同年龄){
this.sex = sex
this.age =年龄;
}
/**
*生小牛
* @return生下的小牛
*/
公牛熊(){
小牛=空;
if(this.sex==0) {
如果(this.age & gt= 3 & amp& ampthis.age & lt=10) {
小牛=新牛(random(),0);
}否则{
//System.out.println("不好意思,这牛太小或者太老了,生不了孩子。");
}
}否则{
//System.out.println("开什么玩笑?公牛也要它生小牛?”);
}
回归小牛;
}
private int random() {
return(int)math . round(math . random());
}
/**
*长大一岁,目前12岁就卖了。
*/
公共void grow() {
如果(this.age & gt= 12)dead = true;
else this . age++;
}
public int getSex() {
返回this.sex
}
public boolean getDead() {
归还这个. dead;
}
}
4.在宴会桌上
在一家酒店的宴会厅里,四个朋友正围着桌子和侃侃聊天。他们使用四种语言:汉语、英语、法语和日语。众所周知:
A.甲、乙、丙三方各会两种语言,丁方只会一种语言;
B.有一种语言,四个人中有三个人会说;
C.a会说日语,D不会说日语,B不会说英语;
D.甲方与丙方,丙方与丁方不能直接对话,但乙方与丙方可以直接对话;
E.没有人既懂日语又懂法语。
请问:甲、乙、丙、丁说什么语言?
回答:
第一个问题的正解
答:中国和日本
中国和法国
列车员:英国和法国
d:中号。
抓住机会发财
从前,有两个邻国,A和b,他们关系很好。他们不仅彼此之间有频繁的贸易往来,而且有共同的货币和相同的汇率。也就是说,A国的100元等于b国的100元,然而两国关系因为一次事件而破裂。虽然贸易还在继续,但两国国王互相宣布,对方货币的100元只能换成本国货币的90元。有个聪明人,他只有A国的100元纸币,却趁机发了大财。请大家想一想,这个聪明人是怎么从中发家致富的?
回答:
从A国拿100去B国换钱,然后用B国换的钱去B国换钱。
如此循环
抓紧时间
人们仍然可以在墨西哥农村看到马和驴驮着货物。一个商人从A村拉四匹马到B村,但是从A村到B村,A马需要一个小时,B马需要两个小时,C马需要四个小时,D马需要五个小时。
商人一次只能拉两匹马,回来还要骑一匹马,其中慢马就是从A村拉到B村所需的时间。听说有人花了12小时把四匹马全部从A村拉到b村,他是怎么做到的?
回答:
AB,b后4小时再来。
一张CD小时后回来。
AB在一起呆了两个小时。
一个***12小时
7.点击鼠标
鼠标点击比赛现在开始!参赛者是拉尔夫、威利和保罗。
拉尔夫可以在10秒内击中鼠标10次;威利可以在20秒钟内击中鼠标20次;保罗可以在五秒钟内点击鼠标五次。以上每个人花费的时间是这样计算的;从第一击到最后一击结束。
他们画画了吗?如果不是,谁先完成了40次鼠标点击?
回答:
拉尔夫
加速然后减速的过程。三个人的平均速度是相等的。达到中间平均速度的人可能性最大。
8.感觉
用第一感觉判断方程8+8 = 91是否正确?说明原因。
回答:
不正确。8+8=16
9.谎言
如果下面大家说的都是假的,那花瓶是谁打碎的?
夏克:吉姆打破了花瓶。
汤姆:沙克会告诉你谁打碎了花瓶。
汤姆,沙克和我不太可能打碎花瓶。
克里斯:我没有打破花瓶。
埃里克:沙克打碎了花瓶,所以汤姆和艾普不太可能打碎它。
吉姆:我打碎了花瓶。汤姆是无辜的。
答案:克里斯。吉姆的话有两个条件,只要一个是假的,就一定是假的。
10.走了一大段路
鲁道夫、菲利普和罗伯特,三个年轻人,一个成了歌手,一个考上了大学,另一个加入了美国海军陆战队。他们都将在未来取得巨大成就。众所周知:
A.罗伯特比士兵年龄大;
B.大学生比菲利普年轻;
C.鲁道夫的年龄不同于大学生。
请问:三个人中的歌手是谁?谁是大学生?士兵是谁?
辛格大学美国海军陆战队
鲁道夫X正确
菲利普真实X X
罗伯特·真X
罗伯特比菲利普年轻,比一名士兵年长。所以菲利普不是士兵。
11.麻省理工的学生
麻省理工学院的学生来自不同的国家。
大卫,比利和泰德是三个学生,一个是法国人,另一个是日本人,还有一个是美国人。众所周知:
1.大卫不喜欢面条,特德不喜欢汉堡包。
2.喜欢面条的不是法国人;
3.日本人喜欢汉堡包;
比利不是美国人。
请猜猜这三个留学生来自哪个国家?
回答:
法国人、日本人、美国人
大卫真X
比利真X
Ted X真的
喜欢汉堡包的是日本人,但泰德不喜欢汉堡包=“泰德不是日本人。
喜欢汉堡的人是日本人,所以可以假设喜欢面条的人不是日本人=“美国人喜欢面条,大卫不喜欢面条=“大卫也不是美国人。所以泰德是美国人。
喜欢面条的人不是法国人。我们假设不喜欢面条的人是法国人=“大卫是法国人。
So = "比利时日语"
然后根据假设结果逐一判断原始条件。每个条件都满足。所以上述假设成立。
如需更多(包括各种面经、书法经典),请加我QQ:719116861。马克java!