单循环比赛赛程 java
原文转自:https://blog.51cto.com/haoroid/1854275
问题:有偶数支羽毛球队进行单循环比赛,按照指定算法将每轮的对阵形势打印出来?
解题思路:单循环制是指每支队伍在比赛是均能相遇一次。可采用'U'逆时针旋转法进行对局轮换。
图1.1为有4支队伍的单循环比赛制的流程图
图1.1 单循环赛制步骤图
可将该过程看成数组的循环。
代码实现:
方法1:
public class SingleCycle {private static Scanner scanner;public static void main(String[] args) {System.out.println("输入偶数个羽毛球队伍:");scanner = new Scanner(System.in);int n = 0;n = scanner.nextInt();if (n%2 !=0 || n <= 0) {System.out.println("输入错误,程序退出!");System.exit(0);}int[] a = new int[n];/*使用双重循环实现球队单循环制轮换* i:局数循环; j:每局的球队赋值*/for (int i = 0; i < n ; i++) {for (int j = 0; j < n; j++) {a[(j + i) % n] = j + 1;}System.out.println("第" + (i+1) + "局的对阵:");showArray(a);}}private static void showArray(int[] a) {for (int m = 0; m < a.length; m++)for (int n = a.length - 1; n > m; n--) {if (m + n + 1 == a.length) {System.out.print(a[m] + "-" + a[n] + " ");}}System.out.println();}
}
方法2:
public class SingleCycle {static int teamNum;static int[] teams;private static Scanner scanner;public static void main(String[] args) {//通过命令行参数获取球队数量scanner = new Scanner(System.in);teamNum= scanner.nextInt();if(teamNum<=0 || teamNum%2!=0){System.out.println("输入错误,程序退出!");System.exit(0);}//创建球队和初始化球队teams=new int[teamNum];for(int i=0;i<teams.length;i++){teams[i]=i+1;}//打印对阵形式和轮循for(int i=1;i<=teamNum;i++){System.out.println("第" + i + "局的对阵:");printTeams();round();}}//打印对阵形式public static void printTeams(){for(int j=0;j<teams.length/2;j++){System.out.print(teams[j]+"-"+teams[teams.length-1-j]+" ");}System.out.println();}//球队单循环轮训public static void round(){int temp=teams[teams.length-1];for(int i=teams.length-1;i>=1;i--){teams[i]=teams[i-1];}teams[0]=temp;}
}
单循环比赛赛程 java相关推荐
- 【程序8】乒乓球比赛赛程安排
/*[程序8] * 作者 中国风 * 乒乓球比赛赛程安排 * 某学校举行乒乓球比赛,在初赛阶段设置为循环赛,设有n位选手参赛, * 初赛共进行n-1天, 每位选手要与其他每一们选手进行一场比赛, * ...
- python足球联赛赛程_python爬取足球比赛赛程笔记
目标:爬取某网站比赛赛程,动态网页,则需找到对应ajax请求(具体可参考:https://blog.csdn.net/you_are_my_dream/article/details/53399949 ...
- 小技巧-不使用js制作高级足球比赛赛程表
今天给大家介绍一种不使用js而用id来实现制作高级足球比赛赛程表(点击轮次即可显示出对应的轮次的赛程,后文会详细说明) 本文代码只展示核心代码 我们先用a标签写出轮次图的代码:(a里面的href使用i ...
- 用图的领接矩阵来解决打比赛赛程安排
说明 设有2n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛.设计一个比赛的安排,使在2n – 1天内每个队都与不同的对手比赛. 例如n=2时的比赛安排: ...
- java 比赛赛程_分治算法兵乓球比赛日程(java)
分治算法之兵乓球比赛日程 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解.也就是字面上的解释是" ...
- 乒乓球比赛赛程_丁宁休战,刘诗雯做手术!李隼、秦志戬做介绍,国乒最新赛程曝光...
久违了,国乒!因为今年众所周知的原因,中国的冠军之师:中国乒乓球队,自从3月在卡塔尔打完比赛后,就一直没有公开比赛,而是始终在封闭训练.面对奥运延期一年的形势,国乒在努力做着调整,确保状态始终达到奥运 ...
- 乒乓球比赛赛程_国乒今年最后一站比赛延期!赛程缩短比赛地温暖,教练组考察队员...
中国乒乓球队目前正在成都进行封闭集训,中国乒协计划在12月16日-27日进行2020年乒超联赛,这个比赛也将是国乒在本年度的最后一项比赛.不过从目前各方消息来看,今年的乒超联赛将延期举行,并且赛程也将 ...
- 乒乓球比赛赛程_10月5日至10月11日中央电视台直播录播乒乓球比赛安排
10月5日至10月11日这一周中央电视台居然没有播乒乓球比赛?全国乒乓球锦标赛从5日开始进行各单项比赛,7日进行混双决赛,9日进行男双决赛和女单决赛,10日进行女双决赛和男单决赛.场场都是精彩好看的比 ...
- 射击比赛(java)
射击比赛 描述 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我们假设靶心在原点( ...
- 乒乓球比赛赛程_2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道
原标题:2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道 随着国际乒联总决赛的落幕,今年的国际大赛告一段落.好球的朋友们,2018年又有哪些国际大赛值得关注呢? 国乒有哪些重大记录等着打破?巡 ...
最新文章
- 读《大道至简》第六章感想
- 磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备
- SHADER效果收集
- 用于大数据开发的Centos7操作系统安装过程中遇到的问题总结
- tcpdump抓取udp报文
- mysql innodb log_教你如何理解mysql中的innoDB log
- Jquery事件、冒泡、委托与节点
- JavaScript学习笔记(八)--正则表达式
- 在沈阳存款多少可以不用工作?
- oracle 截取字符(substr),检索字符位置(instr)
- Linux TCP/IP 网络工具对比:net-tools 和 iproute2
- 模式识别、机器学习与深度学习
- 跑步机上的精彩人生——Linus大神传奇
- 指令下载Google网盘数据遇到的无法连接问题
- 自签发SSL证书签发生成过程
- Python for循环嵌套用法
- 全球与中国3D打印假肢市场深度研究分析报告
- Golang-RSA加密解密-数据无大小限制(gophp)
- 4 计算机系统的异步性,操作系统复习资料.doc
- 《Adobe Flash CS6中文版经典教程》——1.10 修改内容和舞台
热门文章
- 罗技鼠标G304驱动与讲解(其余类型驱动见文末)
- 专技继续教育-使用tampermonkey刷课时(可自动跳转下一节)
- SSM框架面试题整理
- ios教程,用pc开发ios游戏
- 51单片机入学第七课——矩阵键盘
- linux没找到unzip命令,linux中提示没有unzip命令解决方法如果你如法使用unzip命令解压.zip文件,可能是你没有安装unzip软件,下面是安装方法命令: yum li...
- 1024 科学计数法(C语言)测试点4详解
- 春晚红包:史上最难开卷考试,快手交卷了
- 204. 电子编程入门到工程师--混沌与秩序--天书信号
- 机器人对话常用语模板_小a电话机器人免费咨询