✅创作者:陈书予
🎉个人主页:陈书予的个人主页
🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区
🌟专栏地址: Java华为OD机试真题(2022&2023)
文章目录
- 1、题目描述
- 2、输入描述
- 3、输出描述
- 4、Java算法源码
- 5. 测试
- 6.解题思路
1、题目描述
在星球争霸篮球赛对抗赛中,强大的宇宙战队,希望每个人都能拿到MVP。
MVP的条件是,单场最高分得分获得者,可以并列,所以宇宙战队决定在比赛中,尽可能让更多的队员上场,且让所有有得分的队员得分都相同。
然而比赛过程中的每一分钟的得分都只能由某一个人包揽。
2、输入描述
输入第一行为一个数字t,表示有得分的分钟数( 1 <= t <= 50),第二行为t个数字,代表每一分钟的得分p(1 <= p <= 50)。
3、输出描述
输出有得分的队员都是MVP时最少的MVP得分。
4、Java算法源码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int t = Integer.parseInt(sc.nextLine());
String[] s = sc.nextLine().split(" ");
int[] scores = new int[t];
for (int i = 0; i < s.length; i++) {
scores[i] = Integer.parseInt(s[i]);
}
int sum = 0, max = 0;
for (int i = 0; i < t; i++) {
sum += scores[i];
if (max < scores[i]) {
max = scores[i];
}
}
while (true) {
if (sum % max == 0) {
System.out.println(max);
break;
} else {
max++;
}
}
}
}
5. 测试
6.解题思路
- 首先读取输入的数字
t
,表示有得分的分钟数。 - 使用循环读取得分信息,将每一分钟的得分存储在整数数组
scores
中。 - 初始化变量
sum
和max
,分别用于累加得分总和和记录最高得分。 - 遍历得分数组
scores
,累加得分总和到变量sum
,同时更新最高得分max
。 - 循环判断最少的MVP得分:
- 如果得分总和
sum
能够被最高得分max
整除,说明所有有得分的队员都是MVP,输出max
。 - 否则,将最高得分
max
自增1,继续判断。
- 如果得分总和
- 输出最少的MVP得分。