网易笔试编程题2016.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[编程题] 小易的升级之路 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少? 输入描述: 对于每组数据,第一行是两个整数n(1≤n100000)表示怪物的数量和a表示小易的初始能力值.第二行n个整数,b1,b2...bn(1≤bi≤n)表示每个怪物的防御力 输出描述: 对于每组数据,输出一行.每行仅包含一个整数,表示小易的最终能力值 输入例子: 3 50 50 105 200 5 20 30 20 15 40 100 输出例子: 110 205 #includeiostream #includecstdio #includestring #includevector #includelist #includedeque #includestdio.h #includealgorithm using namespace std; /* int gcd(int m,int n) { return n == 0 ? m : gcd(n,m%n); }*/ int gcd(int a,int b) { if(!b) return a; return gcd(b,a%b); } int main() { int n,ack,ans; while(scanf(%d%d,n,ack)!=EOF) { while(n--) { scanf(%d,ans); if(ansack) ack+=gcd(ack,ans); else ack+=ans; } printf(%d\n,ack); } return 0; } [编程题] 炮台攻击 兰博教训提莫之后,然后和提莫讨论起约德尔人,谈起约德尔人,自然少不了一个人,那 就是黑默丁格------约德尔人历史上最伟大的科学家. 提莫说,黑默丁格最近在思考一个问题:黑默丁格有三个炮台,炮台能攻击到距离它R的敌人 (两点之间的距离为两点连续的距离,例如(3,0),(0,4)之间的距离是5),如果一个炮台能攻击 到敌人,那么就会对敌人造成1×的伤害.黑默丁格将三个炮台放在N*M方格中的点上,并且给出敌人 的坐标. 问:那么敌人受到伤害会是多大? 输入描述: 第一行9个整数,R,x1,y1,x2,y2,x3,y3,x0,y0.R代表炮台攻击的最大距离,(x1,y1),(x2,y2), (x3,y3)代表三个炮台的坐标.(x0,y0)代表敌人的坐标. 输出描述: 输出一行,这一行代表敌人承受的最大伤害,(如果每个炮台都不能攻击到敌人,输出0×) 输入例子: 1 1 1 2 2 3 3 1 2 输出例子: 2x #includeiostream #includestdio.h #includemath.h using namespace std; struct Point { int x,y; Point(int x=0,int y=0):x(x),y(y){}//构造函数,方便代码编写 Point(Point a):x(a.x),y(a.y){} }; inline int Distance(Point A,Point B) { return (A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y); } int main() { int R; Point A,B,C,P; while(scanf(%d%d%d%d%d%d%d%d%d,R,A.x,A.y,B.x,B.y,C.x,C.y,P.x,P.y)!=EOF) { int sum=0; R*=R; if(Distance(A,P)=R) sum++; if(Distance(B,P)=R) sum++; if(Distance(C,P)=R) sum++; printf(%dx\n,sum); } return 0; } //1 1

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档