牛客网---2016---网易升级之路
2017-11-13 16:45
134 查看
题目:
小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3…bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?
输入:
对于每组数据,第一行是两个整数n(1≤n<100000)表示怪物的数量和a表示小易的初始能力值.
第二行n个整数,b1,b2…bn(1≤bi≤n)表示每个怪物的防御力
输出:
对于每组数据,输出一行.每行仅包含一个整数,表示小易的最终能力值
解析:
1. 计算公约数公式?我记得有个算法来着,没错,是c语言里面的东东哟。
2.
解题所需函数:
1 . 关于最大公约数和最小公倍数
这里利用了余数来确定最大公约数
两数的乘积/最大公约数=最小公倍数
不断求余,并重新赋值,大数变小数,小数变余数,直到余数为0,余数为零的时候,小数成为最大公约数,最小公倍数是两者乘积除以最大公约数
代码:
小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3…bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?
输入:
对于每组数据,第一行是两个整数n(1≤n<100000)表示怪物的数量和a表示小易的初始能力值.
第二行n个整数,b1,b2…bn(1≤bi≤n)表示每个怪物的防御力
3 50 50 105 200 5 20 30 20 15 40 100
输出:
对于每组数据,输出一行.每行仅包含一个整数,表示小易的最终能力值
110 205
解析:
1. 计算公约数公式?我记得有个算法来着,没错,是c语言里面的东东哟。
2.
解题所需函数:
1 . 关于最大公约数和最小公倍数
这里利用了余数来确定最大公约数
两数的乘积/最大公约数=最小公倍数
#include <stdio.h> #include <math.h> main(){ int m,n,a,b,c,d; printf("Please enter two integer:"); scanf("%d %d",&m,&n); d=m*n; //保证m大n小 if(m<n) { //交换的一个过程,利用a a=n; n=m; m=a; } for(b=m%n;b!=0;b=m%n) { m=n; n=b; } c=d/n; printf("最大公约数为%d\n",n); printf("最小公倍数为%d\n",c); printf("\n"); }
不断求余,并重新赋值,大数变小数,小数变余数,直到余数为0,余数为零的时候,小数成为最大公约数,最小公倍数是两者乘积除以最大公约数
代码:
import java.util.*; // 主函数 public class Main { public static void main(String[] args) { // 用于录入数据 Scanner scanner=new Scanner(System.in); // 必备输入判断 hasNext while(scanner.hasNext()){ // 录入数据,遇怪个数 & 初始能力值 int n=scanner.nextInt(); int init=scanner.nextInt(); // 创建数组,用于录入怪物能力 int[] monster=new int ; for(int i=0;i<n;i++){ // 获取对应的怪物能力值 monster[i]=scanner.nextInt(); // 判断赢者通吃 if(init>monster[i]){ init+=monster[i]; }else{ // 采用最大公约数来增加经验值 保证后输入的值是大的 用于求公约 init+=getGongYue(init,monster[i]); } } // 输出结果 System.out.println(""+init); } // 关闭scanner scanner.close(); } // 最大公约数求解函数 public static int getGongYue(int n,int m){ // 满足条件返回值,否则循环,递归 if(m%n==0){ return n; }else{ return getGongYue(m%n,n); } } }
相关文章推荐
- 网易2016研发工程师编程题(最小公约数)-----小易的升级之路
- 网易2016研发工程师编程题:小易的升级之路
- 牛客网---2016---网易奖学金
- 牛客网---2016---网易路灯
- 牛客网之网易2016实习研发工程师编程题
- [编程题-网易]小易的升级之路
- 牛客网---2016---网易炮台攻击
- 牛客网---2016---网易扫描滤镜
- 网易16年研发笔试题 - 小易的升级之路
- 2016网易面试测试岗实习生面经
- 青铜到王者:AIOps 平台在腾讯的升级之路
- 网易 2016 实习研发工程师 3道 编程题
- Xcode 5.1.1 与 Xcode 6.0.1 的共存之路(建议大家在升级Xcode 6.0.1 的时候保留Xcode 5.1.1)
- 离开网易的转型之路1:选择测试之路-路上的迷茫
- 2016 cocoapods的安装和使用以及版本升级遇到的问题
- 跨越敏捷 — 闲鱼研发效能升级之路
- 网易2016研发工程师编程题:奖学金 [python]
- 网易2016 实习研发工程师 [编程题]寻找第K大 and leetcode 215. Kth Largest Element in an Array
- CYQ.Data 轻量数据层之路 华丽升级 V1.3出世(五)
- 网易游戏2016校园招聘“游戏研发&平台开发”在线笔试——A题 Amusing Digits