单循环比赛赛程 java
生活随笔
收集整理的這篇文章主要介紹了
单循环比赛赛程 java
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原文轉(zhuǎn)自:https://blog.51cto.com/haoroid/1854275
?
問題:有偶數(shù)支羽毛球隊進(jìn)行單循環(huán)比賽,按照指定算法將每輪的對陣形勢打印出來?
解題思路:單循環(huán)制是指每支隊伍在比賽是均能相遇一次。可采用'U'逆時針旋轉(zhuǎn)法進(jìn)行對局輪換。
圖1.1為有4支隊伍的單循環(huán)比賽制的流程圖
圖1.1 單循環(huán)賽制步驟圖
可將該過程看成數(shù)組的循環(huán)。
代碼實現(xiàn):
方法1:
public class SingleCycle {private static Scanner scanner;public static void main(String[] args) {System.out.println("輸入偶數(shù)個羽毛球隊伍:");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];/*使用雙重循環(huán)實現(xiàn)球隊單循環(huán)制輪換* i:局?jǐn)?shù)循環(huán); 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) {//通過命令行參數(shù)獲取球隊數(shù)量scanner = new Scanner(System.in);teamNum= scanner.nextInt();if(teamNum<=0 || teamNum%2!=0){System.out.println("輸入錯誤,程序退出!");System.exit(0);}//創(chuàng)建球隊和初始化球隊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();}//球隊單循環(huán)輪訓(xùn)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;} }總結(jié)
以上是生活随笔為你收集整理的单循环比赛赛程 java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你是否了解新媒体,新媒体简介
- 下一篇: IPFS星际文件系统(中文白皮书)