网易笔试题

Posted ranran1203

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网易笔试题相关的知识,希望对你有一定的参考价值。

1.小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?

 

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N=100000;
 6 int a[N];
 715 int maxcommon(int a,int b)//辗转法求最大公约数
16 {
17     
18     int p=0;
19     while(a%b)
20    {
21         p=a%b;
22         a=b;
23         b=p;
24    }
25    return b;
26 }
27   
28 int main()
29 {
30     int n;
31     while(cin>>n)
32     {
33         long long ca;
34         cin>>ca;
35         for(int i=0;i<n;i++)
36         {
37             scanf("%d",&a[i]);
38         }
39         for(int i=0;i<n;i++)
40         {
41             if(a[i]<=ca)
42                 ca+=a[i];
43             else
44                 ca+=maxcommon(ca,a[i]);
45         }
46         cout<<ca<<endl;
47     }
48 }
49 

2.兰博教训提莫之后,然后和提莫讨论起约德尔人,谈起约德尔人,自然少不了一个人,那 就是黑默丁格------约德尔人历史上最伟大的科学家. 提莫说,黑默丁格最近在思考一个问题:黑默丁格有三个炮台,炮台能攻击到距离它R的敌人 (两点之间的距离为两点连续的距离,例如(3,0),(0,4)之间的距离是5),如果一个炮台能攻击 到敌人,那么就会对敌人造成1×的伤害.黑默丁格将三个炮台放在N*M方格中的点上,并且给出敌人 的坐标. 问:那么敌人受到伤害会是多大?

 

 1 #include<iostream>
 2 #include<math.h>
 3 using namespace std;
 4 int main()
 5 {
 6     int R,x1,y1,x2,y2,x3,y3,x0,y0;
 7     while(cin>>R)
 8     {
 9         cin>>x1>>y1>>x2>>y2>>x3>>y3>>x0>>y0;
10         double dist1=sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0));
11         double dist2=sqrt((x2-x0)*(x2-x0)+(y2-y0)*(y2-y0));
12         double dist3=sqrt((x3-x0)*(x3-x0)+(y3-y0)*(y3-y0));
13         int count=0;
14         if(dist1<(double)R)
15             count++;
16         if(dist2<(double)R)
17             count++;
18         if(dist3<(double)R)
19             count++;
20         cout<<count<<"x"<<endl;
21     }
22 }
23 添加笔记

3.在N*M的草地上,提莫种了K个蘑菇,蘑菇爆炸的威力极大,兰博不想贸然去闯,而且蘑菇是隐形的.只 有一种叫做扫描透镜的物品可以扫描出隐形的蘑菇,于是他回了一趟战争学院,买了2个扫描透镜,一个 扫描透镜可以扫描出(3*3)方格中所有的蘑菇,然后兰博就可以清理掉一些隐形的蘑菇. 问:兰博最多可以清理多少个蘑菇?
注意:每个方格被扫描一次只能清除掉一个蘑菇。

 

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 void findmax(vector<vector<int>>field,int N,int M,vector<int>&res)
 5 {
 6     for(int i=0;i<N-2;i++)
 7         {
 8         for(int j=0;j<M-2;j++)
 9         {
10             int tmp=0;
11             for(int m=i;m<=i+2;m++)//以field[i][j]为起始点向左三个,向右三个的方块区域内最大能消灭的蘑菇数
12               {
13                for(int n=j;n<=j+2;n++)
14                   {
15                    if(field[m][n]>0)
16                    {
17                         tmp++;
18                    }
19                 }
20             }
21             if(res[0]<tmp)
22             {
23                 res[0]=tmp;
24                 res[1]=i;
25                 res[2]=j;
26             }
27               
28         }
29     }
30       
31 }
32 int main()
33 {
34     int N,M,K;
35     int x,y;
36     while(cin>>N>>M>>K)
37     {
38         if(N<3)
39             N=3;
40         if(M<3)
41             M=3;
42         vector<vector<int>>field(N,vector<int>(M,0));
43         while(K--)
44         {
45             cin>>x>>y;
46             field[x-1][y-1]++;
47         }
48         vector<int>first(3,0);
49         vector<int>second(3,0);
50         findmax(field,N,M,first);
51         for(int i=first[1];i<first[1]+3;i++)//第二次查找之前要把之前消灭的从field中去除
52             {
53             for(int j=first[2];j<first[2]+3;j++)
54                 field[i][j]--;
55         }
56         findmax(field,N,M,second);
57         cout<<first[0]+second[0]<<endl;
58           
59     }
60 }

 

以上是关于网易笔试题的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript笔试题(js高级代码片段)

网易笔试题

网易笔试题——mysql整理

网易2017年校招笔试题 最大的奇约数

2018年网易Java笔试题

网易笔试题——算法岗