题目描述:
小明在玩一个游戏,游戏规则如下:
在游戏开始前,小明站在坐标轴原点处(坐标值为0)。
给定一组指令和一个幸运数,每个指令都是一个整数,小明按照指定的要求前进或者后退指定的步数。前进代表朝坐标轴的正方向走,后退代表朝坐标轴的负方向走。
幸运数为一个整数,如果某个指令正好和幸运数相等,则小明行进步数加1。
例如:
幸运数为3,指令为[2,3,0,-5]
指令为2,表示前进2步;
指令为3,正好和幸运数相等,前进3+1=4步;
指令为0,表示原地不动,既不前进,也不后退。
指令为-5,表示后退5步;
请你计算小明在整个游戏过程中,小明所处的最大坐标值。
输入描述:
第一行输入1个数字,代表指令的总个数n (1<=n<=100)
第二行输入1个数字,代表幸运数m (-100<=m<=100)
第三行输入n个指令,每个指令值的取值范围为:-100<=指令值<=100
输出描述:
输出在整个游戏过程中,小明所处的最大坐标值。异常情况下输出:12345
示例1
输入:
2
1
-5 1
输出:
0
JS参考解题:
function calculateMaxCoordinate(n, luckyNumber, instructions) {
let maxCoordinate = 0;
let currentCoordinate = 0;
for (let i = 0; i < n; i++) {
// 每次移动前检查是否与幸运数相等
if (instructions[i] === luckyNumber) {
currentCoordinate += instructions[i] + 1; // 加1步
} else {
currentCoordinate += instructions[i];
}
// 更新最大坐标值
maxCoordinate = Math.max(maxCoordinate, currentCoordinate);
}
return maxCoordinate;
}
// 示例输入
const n = 4;
const luckyNumber = 3;
const instructions = [2, 3, 0, -5];
// 调用函数并打印结果
const maxCoordinate = calculateMaxCoordinate(n, luckyNumber, instructions);
console.log(maxCoordinate);