分小组 9名运动员参加比赛,需要分3组进行预赛。 有哪些分组的方案呢? 我们标记运动员为 A,B,C,… I 下面的程序列出了所有的分组方法。 该程序的正常输出为: ABC DEF GHI

首页 » 算法 » 分小组 9名运动员参加比赛,需要分3组进行预赛。 有哪些分组的方案呢? 我们标记运动员为 A,B,C,… I 下面的程序列出了所有的分组方法。 该程序的正常输出为: ABC DEF GHI

分小组

9名运动员参加比赛,需要分3组进行预赛。
有哪些分组的方案呢?

我们标记运动员为 A,B,C,… I
下面的程序列出了所有的分组方法。

该程序的正常输出为:
ABC DEF GHI
ABC DEG FHI
ABC DEH FGI
ABC DEI FGH
ABC DFG EHI
ABC DFH EGI
ABC DFI EGH
ABC DGH EFI
ABC DGI EFH
ABC DHI EFG
ABC EFG DHI
ABC EFH DGI
ABC EFI DGH
ABC EGH DFI
ABC EGI DFH
ABC EHI DFG

… (以下省略,总共560行)。

package seven;
 
public class 分小组 {
 public static String remain(int[] a)
 {
  String s = "";
  for(int i=0; i<a.length; i++){
   if(a[i] == 0) s += (char)(i+'A');
  }	
  return s;
 }
 
 public static void f(String s, int[] a)
 {
  for(int i=0; i<a.length; i++){
   if(a[i]==1) continue;
   a[i] = 1;
   for(int j=i+1; j<a.length; j++){
    if(a[j]==1) 
     continue;
    a[j]=1;
    for(int k=j+1; k<a.length; k++){
     if(a[k]==1) continue;
     a[k]=1;
     System.out.println(s+" "+(char)(i+'A')+(char)(j+'A')+(char)(k+'A')+" "+remain(a));  //填空位置
     a[k]=0;
    }
    a[j]=0;
   }
   a[i] = 0;
  }
 }
 
 public static void main(String[] args)
 {
  int[] a = new int[9];		
  a[0] = 1;
 
  for(int b=1; b<a.length; b++){
   a[b] = 1;
   for(int c=b+1; c<a.length; c++){
    a[c] = 1;
    String s = "A" + (char)(b+'A') + (char)(c+'A');
    f(s,a);
    a[c] = 0;
   }
   a[b] = 0;
  }
 }
}

 

标签:
分享到:
赞(0) 打赏

评论 7

评论前必须登录!

 

  1. #1

    我也是学计算机的

    小蚯蚓6个月前 (03-27)
  2. #2

    不错

    hello6个月前 (03-27)
  3. #3

    good厉害了

    沥青6个月前 (03-27)
  4. #4

    我也是小白以后多多交流

    白云6个月前 (03-28)
  5. #5

    我也是学计算机的

    我也是渣渣6个月前 (03-28)
  6. #6

    给你点赞

    你好6个月前 (03-28)
  7. #7

    记住这个网站了

    靓仔4个月前 (05-26)

觉得文章有用就打赏一下弟弟吧

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
正在播放:

作者想对您说:

累了就停下来听首歌吧

听完后会给您一个好心情

最后

等到您不容易

还希望您能多待一会儿

      00:00/00:00