• hj_三三对决分配对手


    import java.util.*;
    
    /**
     * @author hj
     * @version 1.0
     * @Description: 两个球队比赛, 龙队 a,b,c三人,虎队 x,y,z三人,a不和x比 ,c不和x,z比,找出并打印三对选手的对决
     */
    class HjBallGame {
    
        public static void main(String[] args) {
            System.out.println("-----------------");
            threeFor();
            System.out.println("-----------------");
            threeForOptimizing();
            System.out.println("-----------------");
            setContainer();
        }
    
        /**
         * 直接法.三重循环,简单明了一路判断
         */
        private static void threeFor() {
            final char x = 'x';
            final char z = 'z';
            for (char a = x; a <= z; a++) {
                for (char b = x; b <= z; b++) {
                    for (char c = x; c <= z; c++) {
                        if (a != x && c != x && c != z && a != b && a != c && b != c) {
                            System.out.println("a---" + a);
                            System.out.println("b---" + b);
                            System.out.println("c---" + c);
                        }
                    }
                }
            }
        }
    
        /**
         * 直接法.三重循环,稍微优化
         */
        private static void threeForOptimizing() {
            final char x = 'x';
            final char z = 'z';
            for (char a = x; a <= z; a++) {
                for (char b = x; b <= z; b++) {
                    if (a != b) {
                        for (char c = x; c <= z; c++) {
                            if (c != a && c != b && c != x && c != z && a != x) {
                                System.out.println("a----PK----" + a);
                                System.out.println("b----PK----" + b);
                                System.out.println("c----PK----" + c);
                            }
                        }
                    }
                }
            }
        }
    
        /**
         * 集合容器法
         */
        private static void setContainer() {
            //龙 虎 队
            char[] dragon = {'a', 'b', 'c'};
            char[] tiger = {'x', 'y', 'z'};
            Set<Character> setA = new HashSet<>();
            Set<Character> setB = new HashSet<>();
            Set<Character> setC = new HashSet<>();
            for (char d : dragon) {
                for (char t : tiger) {
                    switch (d) {
                        case 'a':
                            if (t != 'x') {
                                setA.add(t);
                            }
                            break;
                        case 'b':
                            setB.add(t);
                            break;
                        case 'c':
                            if (t != 'x' && t != 'z') {
                                setC.add(t);
                            }
                            break;
                        default:
                            System.out.println("异常了");
                            break;
                    }
                }
            }
            deWeight(setA, setB, setC);
            deWeight(setB, setC, setA);
            deWeight(setC, setA, setB);
            System.out.println("龙队 a --->>"+setA.iterator().next());
            System.out.println("龙队 b --->>"+setB.iterator().next());
            System.out.println("龙队 c --->>"+setC.iterator().next());
        }
    
        /**
         * 去重
         *
         * @param setA a的对手集
         * @param setB b的对手集
         * @param setC c的对手集
         */
        private static void deWeight(Set<Character> setA, Set<Character> setB, Set<Character> setC) {
            if (setA.size() == 1) {
                setB.removeAll(setA);
                setC.removeAll(setA);
            }
            if (setB.size() == 1) {
                setA.removeAll(setB);
                setC.removeAll(setB);
            }
            if (setC.size() == 1) {
                setA.removeAll(setC);
                setB.removeAll(setC);
            }
        }
    
    }
  • 相关阅读:
    抓鱼社区
    DotNetTextBox V3.0 所见即所得编辑器控件Ver3.3.3 Free(免费版)
    Pet Shop 4.0系统
    北大青鸟PPT/ Net学习课件/asp.net,AJAX,ADO.net视频教程
    [开源]ASP.NET通用权限管理系统(FrameWork) 1.0.1 Release
    sql isnull函数
    几种常见算法的介绍及复杂度分析(转)
    ajaxpro配置与使用
    C#对图片的几种简单处理
    [你必须知道的.NET] 开篇有益
  • 原文地址:https://www.cnblogs.com/hua-jian/p/15484695.html
Copyright © 2020-2023  润新知