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

选择题:
  • 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[100];
    cin>>cows;
    int index=0,sum=0;
       for(int index=0;index<cows;index++){
        cin>>apples[index];
        sum+=apples[index];
    }
    if(cows==0){
        cout<<0<<endl;
        return 0;
    }
    if(sum%cows!=0){
        cout<<-1<<endl;
        return 0;
    }

    int average=sum/cows;
    int less=0,more=0;

    for(int i=0;i<cows;i++){
        if(apples[i]<average){
            int d=average-apples[i];
            if(d%2!=0){
                cout<<-1<<endl;
                return 0;
            }
            else less+=d/2;
        }
        if(apples[i]>average){
            int d=apples[i]-average;
            if(d%2!=0){
                cout<<-1<<endl;
                return 0;
            }
            else more+=d/2;
        }
    }
    if(less==more)
        cout<<less<<endl;
    else cout<<-1<<endl;
    return 0;
}

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

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

3.给一个M*N的数组,每个数组中的数代表此块田地的价值,横三刀竖三刀分成16分,求各种划分方案16分中最小总价值的最大值。
posted @ 2016-08-03 10:25  0giant  阅读(608)  评论(0编辑  收藏  举报