• 算法题(分小组)


    问题:

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

    代码:

    public class Group {
      private static int count;
      public static void main(String[] args) {
        int[] a = new int[9];
        a[0] = 1;

        for (int i = 1; i < a.length; i++) {
          a[i] = 1;
          for (int j = i+1; j < a.length; j++) {
            a[j] = 1;
            secondGroup("A"+(char)(i+'A')+(char)(j+'A'),a);
            a[j] = 0;
          }
          a[i] = 0;
        }
      }

      private static void secondGroup(String s, int[] a) {
        for (int i = 1; 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 j2 = j+1; j2 < a.length; j2++) {
              if (a[j2]==1) {
                continue;
              }
              a[j2] = 1;
              thirdGroup(s+(char)(i+'A')+(char)(j+'A')+(char)(j2+'A'),a);
              a[j2] = 0;
            }
            a[j] = 0;
          }
          a[i] = 0;
        }
      }

      private static void thirdGroup(String s, int[] a) {
        for (int i = 1; i < a.length; i++) {
          if (a[i]==0) {
            s += (char)(i+'A');
          }
        }
        System.out.println(s);
      }
    }

  • 相关阅读:
    Redux
    版本控制(.git + .svn + SourceTree)
    前端埋点
    前端IDE:VSCode + WebStorm
    浏览器
    Mutation Observer
    函数节流与函数去抖
    React 初识
    Ajax
    JS
  • 原文地址:https://www.cnblogs.com/-rainbow-/p/7410888.html
Copyright © 2020-2023  润新知