编程挑战:小易打怪升级与黑默丁格的炮台伤害计算
版权申诉
149 浏览量
更新于2024-09-09
收藏 439KB PDF 举报
"网易2016年研发工程师面试中涉及的编程题目及解答,包含两个问题:小易打怪升级和黑默丁格的炮台伤害计算。"
编程题目一:小易打怪升级
这个题目考察的是动态规划和最大公约数(GCD)的概念。小易的角色初始能力值为a,会遇到n个怪物,每个怪物的防御力分别为bi。当怪物的防御力bi小于等于小易的能力值c时,小易可以轻松击败怪物并获得bi的能力值提升;若bi大于c,则小易只能获得bi和c的最大公约数的提升。我们需要计算在击败所有怪物后,小易的最终能力值。
提供的代码中,`gcd`函数用于计算两个整数的最大公约数,采用递归的欧几里得算法。`main`函数中,通过循环处理每个怪物,根据防御力更新小易的能力值。如果怪物的防御力小于等于小易的能力值,直接累加;否则,将防御力和当前能力值做最大公约数运算后再累加。最后输出小易的最终能力值。
编程题目二:黑默丁格的炮台伤害计算
此题考察二维空间内的几何计算和数组操作。黑默丁格有三个炮台,每个炮台可以攻击到半径为R的范围内的敌人。每个敌人被攻击到会造成一定的伤害。题目要求计算在给定的炮台位置和敌人坐标下,敌人受到的总伤害。
提供的代码中,先读取炮台的半径R,然后读取8个坐标值(表示3个炮台和5个敌人),并计算每个敌人被炮台攻击到的情况。对于每个敌人,通过遍历炮台的位置,计算与敌人的欧氏距离(`d1 = sqrt((a[i]-a[6])*(a[i]-a[6]) + (a[i+1]-a[7])*(a[i+1]-a[7]))`),如果距离小于等于R,则增加伤害计数`count`。最后输出敌人受到的总伤害。
这两道题目都涉及到基础算法和数据结构的运用,是典型的编程面试题,旨在测试候选人的逻辑思维、算法理解和编程实现能力。在实际面试中,除了正确实现功能外,还需要考虑代码的效率和可读性。
2021-08-30 上传
2021-08-30 上传
2024-01-19 上传
2023-08-24 上传
2023-10-27 上传
2024-01-18 上传
2023-04-23 上传
2023-06-09 上传
2023-06-04 上传
java李杨勇
- 粉丝: 36w+
- 资源: 3180
最新资源
- R语言中workflows包的建模工作流程解析
- Vue统计工具项目配置与开发指南
- 基于Spearman相关性的协同过滤推荐引擎分析
- Git基础教程:掌握版本控制精髓
- RISCBoy: 探索开源便携游戏机的设计与实现
- iOS截图功能案例:TKImageView源码分析
- knowhow-shell: 基于脚本自动化作业的完整tty解释器
- 2011版Flash幻灯片管理系统:多格式图片支持
- Khuli-Hawa计划:城市空气质量与噪音水平记录
- D3-charts:轻松定制笛卡尔图表与动态更新功能
- 红酒品质数据集深度分析与应用
- BlueUtils: 经典蓝牙操作全流程封装库的介绍
- Typeout:简化文本到HTML的转换工具介绍与使用
- LeetCode动态规划面试题494解法精讲
- Android开发中RxJava与Retrofit的网络请求封装实践
- React-Webpack沙箱环境搭建与配置指南