朝阳市网站建设,专门做视频点评的网站,网页设计公司费用低,世界500强中国企业名单题目#xff1a;9名运动员参加比赛#xff0c;需要分3组进行预赛。有哪些分组的方案呢#xff1f;我们标记运动员为 A,B,C,... I下面的程序列出了所有的分组方法。该程序的正常输出为#xff1a;ABC DEF GHIABC DEG FHIABC DEH FGIABC DEI FGHABC DFG EHIABC DFH EGIABC DF…题目9名运动员参加比赛需要分3组进行预赛。有哪些分组的方案呢我们标记运动员为 A,B,C,... I下面的程序列出了所有的分组方法。该程序的正常输出为ABC DEF GHIABC DEG FHIABC DEH FGIABC DEI FGHABC DFG EHIABC DFH EGIABC DFI EGHABC DGH EFIABC DGI EFHABC DHI EFGABC EFG DHI..... (以下省略总共560行)。分析这道题分三个组第一个组我们让他在主函数里遍历所有可能第二组我们建一个新的自定义函数里面弄三个嵌套循环求三个步骤package 历届刷题前7214;public class 分小组 {public static void main(String[] args) {int[] a new int[9];//数组用来储存9个字母a[0] 1;//我们让第一项始终为1for (int i 1; i a.length; i) {//第二个位置a[i] 1;//每到达下一项就让这一项等于1for (int j i 1; j a.length; j) {//第三个位置a[j] 1;//每到达下一项就让这一项等于1String s A (char) (i A) (char) (j A);//第一组所有的可能f(s, a);a[j] 0;//退出来的时候归0}a[i] 0;//退出来的时候归0}}private static void f(String s, int[] a) {for (int i 0; i a.length; i) {//第四个位置if (a[i] 1) {//如果等于1的话那就继续循环直到不是1为止continue;}a[i] 1;//不是1现在赋1for (int j i 1; j a.length; j) {//第五个位置if (a[j] 1) {continue;}a[j] 1;for (int j2 j 1; j2 a.length; j2) {//第六个位置if (a[j2] 1) {continue;}a[j2] 1;//主函数里的s代表前三个f函数里i,j,j2代表中间三个然后用remain求出所有等于0的就是剩余的System.out.println(s (char) (A i) (char) (A j) (char) (A j2) remain(a));a[j2] 0;}a[j] 0;}a[i] 0;}}public static String remain(int[] a) {String s ;for (int i 0; i a.length; i) {if (a[i] 0)//如果说等于0那就没出现过直接赋值给ss (char) (i A);}return s;}}