分组比赛(17JavaB3)

9名运动员参加比赛,需要分3组进行预赛。

有哪些分组的方案呢?

标记运动员为 A,B,C,... I

下面的程序列出了所有的分组方法:

ABC DEF GHI

ABC DEG FHI

ABC DEH FGI

ABC DEI FGH

..... (以下省略,总共560行)。

分析:代码填空题,改成编码题

先排三个,再排三个,最后排三个

(1)先分有A的一组:

ABC

ABD

ACD

ABE

ACE

ADE

ABF

ACF

ADF

AEF

ABG

ACG

ADG

AEG

AFG

ABH

ACH

ADH

AEH

AFH

AGH

ABI

ACI

ADI

AEI

AFI

AGI

AHI

第一位:全A

第二位:B—H,即第一位后——H

第三位:第二位后——I

public class 分组比赛1 {

public static void main(String[] args) {

int LEN = 9;

for (int _n2 = 1; _n2 < LEN; _n2++) {

for (int _n3 = _n2 + 1; _n3 < LEN; _n3++) {

String s = "A" + (char) (_n2 + 'A') + (char) (_n3 + 'A');

System.out.println(s);

}

}

}

}

(2)再分第二组

(3)最后剩下的三个为一组

详细设计

定义数组_flag[9](已分组=1,未分组=0)

A必排第一个,无条件_flag[0]=1

排第二个(n2):for(1 ~ length-1)

n2已分组(_flag[n2] = 1)

排第三个(n3):for(n2+1 ~ length-1)

n3已分组(_flag[n3] = 1)

前三个分组完成!

String s1 = 拼出前三内容

call再分三个(s1,_flag数组)

n3分组完成(_flag[n3] = 0)

n2分组完成(_flag[n2] = 0)

void 再分三个(s1,_flag数组){

排第四个(i):for(1 ~ length-1)

_flag[i]已经分组?continue:_flag=1;

排第五个(j):for(i+1 ~ length-1)

_flag[j]已经分组?continue:_flag=1;

排第六个(k):for(j+1 ~ length-1)

_flag[k]已经分组?continue:_flag=1;

中间三个分组完成!

分最后三个:

for(1 ~ length-1){

_flag=0的全部是

}

本次分组完成!

拼出s2,s3

System.out.println(s1+s2+s3);

k分组完成 (_flag = 0)

j分组完成 (_flag = 0)

i分组完成 (_flag = 0)

}

参考代码

package bb;

public class 分组比赛16JB3 {

public static String m分最后三个(int[] a) {

String s = "";

// 从0开始扫描(从1开始也行,反正A必是已被分组)

// 没分组的全放进来

for (int i = 0; i < a.length; i++) {

if (a[i] == 0) {

s += (char) (i + 'A');

}

}

return s;

}

private static int num = 1;

public static void m再分三个(String s, int[] a) {

// 排4,5,6三人

// 第4人从0开始扫描(从1开始也行,反正A必是已被分组)

for (int i = 1; i < a.length; i++) {

if (a[i] == 1) {// 此人未分组则分之,分了组则跳过

continue;

} else {

a[i] = 1;

}

// 第5人从i+1开始扫描

for (int j = i + 1; j < a.length; j++) {

if (a[j] == 1) {

continue;

} else {

a[j] = 1;

}

// 第6人从j+1开始扫描

for (int k = j + 1; k < a.length; k++) {

if (a[k] == 1) {

continue;

} else {

a[k] = 1;

}

// 填空

System.out.print(num++);

System.out.print(" ");

// 天空位置在此:

System.out.println(s + " " + (char) ('A' + i) + (char) ('A' + j)

+ (char) ('A' + k) + " " + m分最后三个(a)); // 填空位置

a[k] = 0;// 这是一一列举,这次输出了,不要占用,让出分组位置

}

a[j] = 0;

}

a[i] = 0;

}

}

public static void main(String[] args) {

// 数组_flag,原题是数组a,表意性不强,用于标识每个运动员是否被分组

// 已分组=1

// 未分组=0

int[] _flag = new int[9];

_flag[0] = 1;// 分第一个运动员A(下标为0)

for (int _n2 = 1; _n2 < _flag.length; _n2++) {

_flag[_n2] = 1;// 分这个

for (int _n3 = _n2 + 1; _n3 < _flag.length; _n3++) {

_flag[_n3] = 1;// 分这个

String s = "A" + (char) (_n2 + 'A') + (char) (_n3 + 'A');

m再分三个(s, _flag);

_flag[_n3] = 0;

}

_flag[_n2] = 0;

}

}

}

java. 三个人比赛怎么写_蓝桥杯——分组比赛(2017JavaB组第3题)相关推荐

  1. 复数幂用java程序怎么求_蓝桥杯——复数幂 (2018JavaAB组第3题)

    18年Java蓝桥杯A组第3题和B组是一样的. 第三题往往比较难. 复数幂 (18JavaAB3) (A.B两卷第三题一样) 设i为虚数单位.对于任意正整数n,(2+3i)^n 的实部和虚部都是整数. ...

  2. java. 三个人比赛怎么写_两个乒乓球队进行比赛,找出三队赛手的名单

    [java]代码库import java.util.ArrayList; /** * 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛 ...

  3. 蓝桥杯单片机国赛客观题_蓝桥杯单片机比赛历年试题获取

    蓝桥杯单片机比赛历年试题获取!!! 准备蓝桥杯蓝桥杯比赛除了对板子各个模块的熟悉外,还有一件事,那就是把它们综合起来运用.当你单独使用板子上的某一个模块时,可能不会有什么问题,甚至对已经反复练习过后的 ...

  4. 2020年第11届蓝桥杯省赛Python组(真题+解析+代码):数字三角形

    大家好,我是爱分享的小蓝,欢迎交流指正~  1 真题 输入 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输出 27 2 解析 难度系数:⭐⭐ 考察题型:动态规划 涉及知识点:模块 ...

  5. Java语言strcmp函数用法_蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)

    蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法) 首先这不是一个多难的题,但是网上的我没怎么找到有Java的代码,基本全都是c语言的,小编是个小白,如果有不对的地方请联系小编 问题描述 ...

  6. 【解题报告+通法】_九宫幻方 蓝桥杯 2017年C组第八题(dfs解法)

    题目描述 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行.每一列和每一条对角线的和都是相同的. 三阶幻方又被 ...

  7. 【蓝桥杯练习】B组结果填空题13-18------更新中

    [2013年B组] 2.标题: 马虎的算式     小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了. 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ...

  8. 【已解决】蓝桥杯 2017年C组第五题 杨辉三角(分析与总结)

    励志用少的代码做高效表达 题目描述: 杨辉三角也叫帕斯卡三角,在很多数量关系中可以看到,十分重要. 第0行: 1 第1行: 1 1 第2行: 1 2 1 第3行: 1 3 3 1 第4行: 1 4 6 ...

  9. 2018年第九届蓝桥杯国赛B组C++真题汇总

    1. 换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱. 小明有点强迫症,他坚持要求200元换 ...

最新文章

  1. 1015 Reversible Primes
  2. fileinputstream自定义类序列化和反序列化_Rest Assured篇:Java中的序列化和反序列化...
  3. CSS3无前缀脚本prefixfree.js及Animatable介绍
  4. 基于蚂蚁金服「如何管理好10万行代码」搭建了 Vue 项目架构
  5. mysql忘了root密码_mysql忘记root密码怎么办
  6. 在SAP CDS view上添加扩展字段后激活,背后的实现原理
  7. Flask入门之上传文件到服务器
  8. java监听数据库操作_第十六篇——JDBC操作数据库之监听器
  9. C#仿QQ皮肤系列之-引言
  10. 十分钟学会用Go编写Web中间件
  11. 阿里巴巴张勇:创造风口而不是追逐
  12. 艾伟:彻底解决刷新重复提交问题,你还在用Response.Redirect吗?
  13. 构建高性能分布式搜索引擎(Wcf-基础篇)一
  14. prolog参考手册学习(第一章)
  15. paramiko模块执行linux下nohup卡住的问题。
  16. gdb 调试打印完整字符串
  17. 大学计算机基础题库百度云资源,《大学计算机基础试题题库及答案》.pdf
  18. sas sata ssd硬盘类型,硬盘接口
  19. 以预测股票涨跌案例入门基于SVM的机器学习
  20. pythonspiit函数_python专题高阶函数

热门文章

  1. MySQL问题解决:-bash:mysql:command not found
  2. 论文|SDNE的算法原理、代码实现和在阿里凑单场景中的应用说明(附代码)
  3. 【报告分享】2021年小红书美妆护肤洞察报告.pdf(附下载链接)
  4. 【报告分享】To B企业如何玩转视频号.pdf(附下载链接)
  5. anaconda显示ImportError: cannot import name ‘secure_write‘
  6. 浙大PAT甲级1006
  7. 【干货】Kaggle 数据挖掘比赛经验分享
  8. java main spring_分享通过在java main函数中执行spring的代码
  9. python dataframe groupby_第1关:了解python数据表操作
  10. java swing 字体设置_java如何改变Swing应用程序的默认字体/字号