2019第十届蓝桥杯省赛java b组总结
试题 A: 组队
【问题描述】
作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,
组成球队的首发阵容。
每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1
号位至 5 号位的评分之和最大可能是多少?
【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
思路
每个球位的可能球员编号从1到20,计算评分之和前判断一下5个球位的球员编号是否互不相同。这个可以直接使用5重循环实现。
答案:490
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int athleticGrade[][] = new int[20][5];//存储运动员成绩
for (int i = 0; i < 20; i++) {
reader.nextInt();//将编号数据吸收掉
for (int j = 0; j < 5; j++) {
athleticGrade[i][j] = reader.nextInt();
}
}
int maxGrade = 0;//最大评分之和
for (int a = 0; a < 20; a++) {
for (int b = 0; b < 20; b++) {
for (int c = 0; c < 20; c++) {
for (int d = 0; d < 20; d++) {
for (int e = 0; e < 20; e++) {
//如果a,b,c,d,e互不相同
if (a!=b && a!=c && a!=d && a!=e && b!=c &&
b!=d && b!=e && c!=d && c!=e && d!=e) {
int temp = athleticGrade[a][0]+athleticGrade[b][1]
+athleticGrade[c][2]+athleticGrade[d][3]
+athleticGrade[e][4];
maxGrade = maxGrade > temp ? maxGrade : temp;
}
}
}
}
}
}
System.out.println(maxGrade);
}
}