原文转自: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相关推荐

  1. 【程序8】乒乓球比赛赛程安排

    /*[程序8] * 作者 中国风 * 乒乓球比赛赛程安排 * 某学校举行乒乓球比赛,在初赛阶段设置为循环赛,设有n位选手参赛, * 初赛共进行n-1天, 每位选手要与其他每一们选手进行一场比赛, * ...

  2. python足球联赛赛程_python爬取足球比赛赛程笔记

    目标:爬取某网站比赛赛程,动态网页,则需找到对应ajax请求(具体可参考:https://blog.csdn.net/you_are_my_dream/article/details/53399949 ...

  3. 小技巧-不使用js制作高级足球比赛赛程表

    今天给大家介绍一种不使用js而用id来实现制作高级足球比赛赛程表(点击轮次即可显示出对应的轮次的赛程,后文会详细说明) 本文代码只展示核心代码 我们先用a标签写出轮次图的代码:(a里面的href使用i ...

  4. 用图的领接矩阵来解决打比赛赛程安排

    说明 设有2n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛.设计一个比赛的安排,使在2n – 1天内每个队都与不同的对手比赛. 例如n=2时的比赛安排: ...

  5. java 比赛赛程_分治算法兵乓球比赛日程(java)

    分治算法之兵乓球比赛日程 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解.也就是字面上的解释是" ...

  6. 乒乓球比赛赛程_丁宁休战,刘诗雯做手术!李隼、秦志戬做介绍,国乒最新赛程曝光...

    久违了,国乒!因为今年众所周知的原因,中国的冠军之师:中国乒乓球队,自从3月在卡塔尔打完比赛后,就一直没有公开比赛,而是始终在封闭训练.面对奥运延期一年的形势,国乒在努力做着调整,确保状态始终达到奥运 ...

  7. 乒乓球比赛赛程_国乒今年最后一站比赛延期!赛程缩短比赛地温暖,教练组考察队员...

    中国乒乓球队目前正在成都进行封闭集训,中国乒协计划在12月16日-27日进行2020年乒超联赛,这个比赛也将是国乒在本年度的最后一项比赛.不过从目前各方消息来看,今年的乒超联赛将延期举行,并且赛程也将 ...

  8. 乒乓球比赛赛程_10月5日至10月11日中央电视台直播录播乒乓球比赛安排

    10月5日至10月11日这一周中央电视台居然没有播乒乓球比赛?全国乒乓球锦标赛从5日开始进行各单项比赛,7日进行混双决赛,9日进行男双决赛和女单决赛,10日进行女双决赛和男单决赛.场场都是精彩好看的比 ...

  9. 射击比赛(java)

    射击比赛 描述 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我们假设靶心在原点( ...

  10. 乒乓球比赛赛程_2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道

    原标题:2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道 随着国际乒联总决赛的落幕,今年的国际大赛告一段落.好球的朋友们,2018年又有哪些国际大赛值得关注呢? 国乒有哪些重大记录等着打破?巡 ...

最新文章

  1. 读《大道至简》第六章感想
  2. 磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备
  3. SHADER效果收集
  4. 用于大数据开发的Centos7操作系统安装过程中遇到的问题总结
  5. tcpdump抓取udp报文
  6. mysql innodb log_教你如何理解mysql中的innoDB log
  7. Jquery事件、冒泡、委托与节点
  8. JavaScript学习笔记(八)--正则表达式
  9. 在沈阳存款多少可以不用工作?
  10. oracle 截取字符(substr),检索字符位置(instr)
  11. Linux TCP/IP 网络工具对比:net-tools 和 iproute2
  12. 模式识别、机器学习与深度学习
  13. 跑步机上的精彩人生——Linus大神传奇
  14. 指令下载Google网盘数据遇到的无法连接问题
  15. 自签发SSL证书签发生成过程
  16. Python for循环嵌套用法
  17. 全球与中国3D打印假肢市场深度研究分析报告
  18. Golang-RSA加密解密-数据无大小限制(gophp)
  19. 4 计算机系统的异步性,操作系统复习资料.doc
  20. 《Adobe Flash CS6中文版经典教程》——1.10 修改内容和舞台

热门文章

  1. 罗技鼠标G304驱动与讲解(其余类型驱动见文末)
  2. 专技继续教育-使用tampermonkey刷课时(可自动跳转下一节)
  3. SSM框架面试题整理
  4. ios教程,用pc开发ios游戏
  5. 51单片机入学第七课——矩阵键盘
  6. linux没找到unzip命令,linux中提示没有unzip命令解决方法如果你如法使用unzip命令解压.zip文件,可能是你没有安装unzip软件,下面是安装方法命令: yum li...
  7. 1024 科学计数法(C语言)测试点4详解
  8. 春晚红包:史上最难开卷考试,快手交卷了
  9. 204. 电子编程入门到工程师--混沌与秩序--天书信号
  10. 机器人对话常用语模板_小a电话机器人免费咨询