(1)小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值
为 a.在接下来的一段时间内,他将会依次遇见 n 个怪物,每个怪物的防御力为 b1,b2,b3...bn.
如果遇到的怪物防御力 bi 小于等于小易的当前能力值 c,那么他就能轻松打败怪物,并 且使
得自己的能力值增加 bi;如果 bi 大于 c,那他也能打败怪物,但他的能力值只能增加 bi 与 c 的
最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// System.out.println("请输入怪物数量和小易的初始能力值,以空格分隔:");
while (input.hasNext()) {
// 怪物的数量
int n = input.nextInt();
// 小易初始能力值
int ability = input.nextInt();
// 定义怪物数组
int[] monsters = new int[n];
// 输入每个怪物的防御力
for (int i = 0; i < n; i++) {
monsters[i] = input.nextInt();
}
// 小易遇怪
for (int i = 0; i < n; i++) {
if (ability > monsters[i] || ability == monsters[i]) {
ability = ability + monsters[i];
} else {
ability = ability + GCF(ability, monsters[i]);
}
}
// 打完怪了,输出结果
System.out.println(ability);
}
}
public static int GCF(int A,int B){
if(B==0){
return A;
}else
return GCF(B,A%B);
}
}