今天学了一个简单的试题,就是第十届的蓝桥杯个人赛真题,比较简单。
题目如下:
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
try {
//创建一个二维数组存储二十位选手在不同号位的评分
int[][] team = new int[20][5];
//进行for循环嵌套遍历二维数组,键盘录入数据
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 5; j++) {
team[i][j] = input.nextInt();
}
}
//定义一个数值存储最大评分总和
int maxSum = 0;
//采用for循环嵌套循环遍历五个号位20位选手的成绩
for (int i = 0; i < 20; i++)
for (int j = 0; j < 20; j++)
for (int k = 0; k < 20; k++)
for (int h = 0; h < 20; h++)
for (int g = 0; g < 20; g++)
//判断一个号位只有一个选手,五个号位之间选手互不相同
if ((i != j && i != k && i != h && i != g) && (j != k && j != h && j != g)
&& (k != h && k != g) && h != g) {
int max = team[i][0] + team[j][1] + team[k][2] + team[h][3] + team[g][4];
//求出最大的五个号位评分总和
if (max > maxSum)
maxSum = max;
}
//输出最大总和
System.out.println(maxSum);
//如果异常则键盘录入停止。
} catch (Exception e) {
input.close();
}
}
}
一开始写了自己的思路,但是越写越迷,于是就是看了最正确的解法。学到了学到了。