单循环比赛规则-java
生活随笔
收集整理的這篇文章主要介紹了
单循环比赛规则-java
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:有偶數支羽毛球隊進行單循環比賽,按照指定算法將每輪的對陣形勢打印出來?
解題思路:單循環制是指每支隊伍在比賽是均能相遇一次。可采用'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;} }轉載于:https://blog.51cto.com/haoroid/1854275
總結
以上是生活随笔為你收集整理的单循环比赛规则-java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 税务计算机类考试题型,税务师考试题型分值
- 下一篇: 计算机怎么换背景图片,电脑开机背景图怎么