发布于2021-05-30 19:20 阅读(521) 评论(0) 点赞(25) 收藏(1)
标题:组队
作为篮球队教练,你需要从以下名单中选出1号位至5号位各- -名球员,组成球队的首发阵容。每位球员担任1号位至5号位时的评分如下表所示。请你计算首发阵容1号位至5号位的评分之和最大可能是多少?
(如果你把以上文字复制到文本文件中,请务必检查复制的内容是否与文
档中的一致。)
解题思路
这道题属于试卷的第一道题,所以在计算思路上比较简单,一共是5个位置,每一个位置上的球员应该是互不相同的,同时既然是让最后的总评分达到最大,那么最简单的方法就是在20个球员中,我们先选取每一个位置上评分最高的球员,然后将选取出来的球员在该位置上的评分相加即可。
在这里要注意的就是,如果说某一个球员在多个位置上都是最高分的话,在之前的位置上选取了该球员之后,在其他位置上就不能选该球员了,应该选择分数第二高的球员,按照该方法,选取出来的5个位置对应的球员及其在该位置上的分数如下图(其中一种选择):
第二种思路:如果用程序来做,我们可以使用组合数,每次得到5个球员的组合,算出这个组合的最大评分之和,最后算出所有组合最大评分之和的最大值。代码如下:
答案源码:
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); } }
输出样例:
作者:看看电影票
链接:http://www.phpheidong.com/blog/article/86778/5123a8c14fe370367db8/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!