如果大家也在找面试笔试题目内容,可以看我的总结文章,正在更新之中,有没涉及到的内容,欢迎大家指出(附链接)
数据库、C/C++、HTML、OS、计网面试准备(更新中)
笔试共有三部分:不定项选择(8道),填空(7道),编程(3道) 选择和填空的部分内容涉及较广,计算机知识和数学计算知识都有,不详细记录,要注意填空的概率问题较多
编程题共三道:
1.由N个容器分层叠放,编号从上到下为1到N,每个容器的容量为X,如果装水超过X则会溢出到下面的容器之中,最下一层则会溢出到容器之外。输入N,X,随后输入每层原有水的升数,以及灌注升数,按照从下层容器逐层向上的顺序。
所要输出为最终溢到容器外的水总升数。
个人理解:这道题自己想的比较简单,因为题中说了从最下面开始加水,所以就计算每一次加水超出容量数,并相加即可,因为前面加的水超出之后,下面的容器一定是满的,可以直接算成是溢出到外面的水升数。这种方法很简单,但是存在问题,就是没有把加不满的情况算进去,但是提交时还是过了80%。
2.约瑟夫环问题:N个人围成一圈,首位相连,顺序编号,从第一个人开始报数,当哪个人报数到个位是M或能被M整除的数时,退出游戏,直到剩下一个人,游戏结束,输出这个人的编号。
个人理解:经典的约瑟夫问题,这里为了简便,我用了一个简洁的数学方法,类似递归的思想,通过80%测试数据,还是有很大不足,有大佬指点是最好的了
#include <iostream>
using namespace std;
int main()
{
int N,M;
int f;
cin>>N>>M;
for(int i=2;i<=N;i++)
{
f=(f+M)%i;
}
cout<<f+1<<endl;
}
3.一个商人,有红宝石和蓝宝石,红宝石N个,蓝宝石一个;有人来交易,买走了M个红宝石,又一个人买了余下的N-M的红宝石,已知第二个人买的宝石总价是第一个人的二倍,求蓝宝石的价格。
这个题初读感觉不好懂,但是看输出实例就明白了:红宝石的价格是不同的,每个宝石有自己的价格,输入了宝石个数N和N+1个宝石的价格之后,通过题中关系判断出,余下的那个价格就是蓝宝石的。
个人解答:由于时间有些不足,没能成功写出,有些遗憾。