网易2018校园招聘编程题真题集合 (部分)

标签: 校园招聘 网易2018 算法 招聘笔试题 编程
187人阅读 评论(0) 收藏 举报
分类:

第一题:

小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。

魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币
魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币

小易采购魔法神器总共需要n个魔法币,所以小易只能通过两台魔法机器产生恰好n个魔法币,小易需要你帮他设计一个投入方案使他最后恰好拥有n个魔法币。


解题思路:

看到2x+1 和 2x+2 ,这两个式子之后很明显就可以知道一个可以得到奇数一个可以得到偶数。但是如何知道从0 开始,先使用哪个魔法机器呢?

既然从前面不知道怎么向后推算,那就直接利用结果n 向前推算吧!还是没有什么思路,当然需要用笔画一画了。


稍微一画,立马就有思路了!如果令n%2==0,那么到达n这一步则需要通过魔法机器2,如果!=0 那么则是通过魔法机器1。然后设置好限制条件,就很容易的能够将路径倒序的装入数组中。最后,在倒过来打印就能够知道应该怎么选择魔法机器了!


示例代码:

#include"stdio.h"
int main()
{
    int array[10];            //倒叙记录每次选择的魔法机器
    int n,i = 0,length = 0;
    scanf("%d",&n);
    while(n>0){
        length = i;
        if(n%2==0){
            n = n/2-1;
            array[i] = 2;
        }else{
            n = n/2;
            array[i] = 1;
        }
        i++;
    }
    for(i = length; i >= 0; i--){
        printf("%d",array[i]);
    }
    return 0;
}


第二题:

为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1.


解题思路:

我一般写代码前都会先在纸上写出大致思路,然后就直接写代码,接着调试!看到这个题和以前课上老师布置的一个作业挺像,只不过作业仅仅要求将一个数字反过来其实还都是一样!用n%10 取余数,用数组记录下来。当然在模10之前应该先把最后的所有0 过滤掉!(也不用多说了,上代码!)


示例代码:

#include"stdio.h"
int main(){
    int n,m = 0;     //n为输入的数字,m为反转过来的数字
    int jinzhi=1;   
    int length = 0;
    int arrayM[10]; //存放被拆开的数字
    scanf("%d",&n);
    int l = n;      //记录n的值,最后用到
    while(n%10==0)  //将n 后面所有的0过滤掉
        n=n/10; 
    while(n>0){     //拆数
        arrayM[length] = (n%10);
        length++;
        n = n/10;
    }
    for(int i = 0;i<length;i++){    //将数字组装起来
        jinzhi = 1;
        for(int j = 1;j<length-i;j++)
            jinzhi = jinzhi*10;
        m = arrayM[i]*jinzhi+m;
    }
    printf("%d\n",m+l);            //输出两数字之和
    return 0; 
}

第三题:

一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。


解题思路:

首先明确一下,碎片最短为1,最少存在一个碎片。设置一个游标,从左向右遍历字符串(用到while循环结构)。然后判断当前字符和下一个字符是否相等,如果相等则当前碎片的长度加一,游标移向下一个进入下一次循环。如果不相等,则开始重新记录一个碎片,游标移向下一个进入下一次循环。


示例代码:

#include"stdio.h"
int main(){
    int length[50];//分别存放每一个碎片的长度,最大为50
    char str[50];  //存放待检查的字符串
    int number=1;  //记录碎片的数量
    double avglength;
    int j=0;
    //每个碎片长度最少为1
    for(int i=0;i<50;i++)
        length[i] = 1;
    scanf("%s",str);
    while(str[j]!='\0'){
        if(str[j]==str[j+1]){
            length[number-1]++;
        }
        else{
            number++;//碎片数量加一
        }
        j++;        //游标移向下一个字符
    }
    int sum = 0;
    int num=number-1;
    for(int i=0;i<num;i++)
        sum = sum+length[i];
    avglength = sum/(num*1.0);
    printf("%.2f",avglength);
    return 0;
}


未完待续... ...

















查看评论

网易2018校园招聘:魔法币 [python]

''' [编程题] 魔法币 时间限制:1秒 空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有, 但是小易有两台魔法机器可以通过投入x(x...
  • qq_34617032
  • qq_34617032
  • 2017-11-19 11:59:05
  • 251

牛客网-网易2018校园招聘编程题真题集合-解题思路及源码

因为牛客网上的题目内容有版权声明,暂时就不复制题目了,需要的同学请自行登录牛客网获取。 1、魔法币 思路:分析题目中发现,魔法机器1只能产生奇数的魔法币,而魔法机器2只能产生偶数的魔法币。本题目采...
  • LieQueov
  • LieQueov
  • 2018-01-10 17:30:41
  • 313

网易2018校园招聘编程题真题集合(一)

1、答案及运行结果:递归(逆推):直接或者间接地调用自身递归算法解决问题的特点:(1) 递归就是在过程或函数里调用自身。(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。(3) 递...
  • kalakalayang
  • kalakalayang
  • 2018-03-23 09:50:38
  • 33

网易2018校招编程题集合

1.彩色的砖块 小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多...
  • baidu_32048673
  • baidu_32048673
  • 2017-08-15 18:25:18
  • 705

网易2018校招笔试编程题

网易2018校招笔试编程题 网易2018校招笔试编程题 魔法币 相反数 魔法币 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易...
  • t6_17
  • t6_17
  • 2018-03-20 09:20:25
  • 710

网易2018校招编程题集合7

小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次...
  • xiao_dondon
  • xiao_dondon
  • 2017-08-13 23:32:00
  • 1016

网易2018校招编程题集合6

小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道...
  • xiao_dondon
  • xiao_dondon
  • 2017-08-13 15:11:42
  • 434

网易2018校园招聘编程题真题集合

[编程题] 魔法币 时间限制:1秒 空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机...
  • m0_37975647
  • m0_37975647
  • 2017-10-03 17:05:06
  • 1213

网易2018校招编程题集合4

小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作: 1、将a_i放入b序列的末尾 2、逆置b序列 小易需要你计算输出操作n次之后的b序列。 我先说一下...
  • xiao_dondon
  • xiao_dondon
  • 2017-08-13 00:14:13
  • 681

网易2018校招编程题集合8

小易非常喜欢拥有以下性质的数列: 1、数列的长度为n 2、数列中的每个数都在1到k之间(包括1和k) 3、对于位置相邻的两个数A和B(A在B前),都满足(A 例如,当n = 4, k = 7...
  • xiao_dondon
  • xiao_dondon
  • 2017-08-14 20:59:46
  • 1144
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 13万+
    积分: 3328
    排名: 1万+
    微信公众号
    课程设计、视频资源、有料趣文
    Worldhello


    微信公众号:Worldhello
    期待您的关注!
    博客专栏
    最新评论