网易校招C++研发工程师笔试题

时间:2022-05-14 14:29:42
选择题:
  • mysql主从复制,server_id问题
  • mysql key_len
  • 找以.conf为结尾的文件
问答题:
  实现一个超大整数的类 并实现加减法功能
  用string实现大数加减法(博客里以前总结过,自己实现过乘法,加法没有做)——实现以下,再粘代码
 
 
编程题:
1.输入N个数,每次都只能转移2到其他的数,最少转移几次可以使得N个数都一样(即达到平均值)  
 例如:输入4个数  7 15 9 5,输出3
 注意cout以后要return 
 
#include<iostream>
using namespace std; int main(){
int cows;
int apples[];
cin>>cows;
int index=,sum=;
for(int index=;index<cows;index++){
cin>>apples[index];
sum+=apples[index];
}
if(cows==){
cout<<<<endl;
return ;
}
if(sum%cows!=){
cout<<-<<endl;
return ;
} int average=sum/cows;
int less=,more=; for(int i=;i<cows;i++){
if(apples[i]<average){
int d=average-apples[i];
if(d%!=){
cout<<-<<endl;
return ;
}
else less+=d/;
}
if(apples[i]>average){
int d=apples[i]-average;
if(d%!=){
cout<<-<<endl;
return ;
}
else more+=d/;
}
}
if(less==more)
cout<<less<<endl;
else cout<<-<<endl;
return ;
}

2.0=<h<=10^18    满足x+x^2<h  求x  x为整数

注意点:用long long 可以实现10^18

3.给一个M*N的数组,每个数组中的数代表此块田地的价值,横三刀竖三刀分成16分,求各种划分方案16分中最小总价值的最大值。