学习记录——java 乒乓球赛(review)

题目

甲乙两队进行乒乓球赛。
甲队:a,b,c 三人; 乙队:x,y,z三人
条件:a不和x比,c不和x,z比
求对战名单

此题没想出来,参考了网上的做法。
贴出来:别人的方法

以下

public class Problem18 {
    public static void main(String[] args) {
        //i,j,k 分别假设为与a,b,c三人对战的乙队成员
        char i,j,k;
        for ( i = 'x'; i <='z' ; i++) {
            for ( j = 'x'; j <='z' ; j++) {
                for ( k = 'x'; k <='z' ; k++) {
                    //i,j,k三者不能相等,因为一对一比赛
                    if(i!=j&&i!=k&&j!=k){
                    	//满足题目条件
                        if(i!='x'&&k!='x'&&k!='z'){
                            System.out.println("a vs "+i);
                            System.out.println("b vs "+j);
                            System.out.println("c vs "+k);
                        }

                    }
                }
            }
        }
    }
}

大概就是a,b,c固定,分别求i,j,k的排列组合与之配对,然后去掉重复的,和留下满足条件的(只有一个)

abc
I=xj=yk=z❌ :a!=x
I=xj=zk=j❌: a!=x
I=yj=xk=z❌:c!=z
I=yj=zk=x❌:c!=x
I=zj=yk=x❌:c!=x
I=zj=xk=y⭕️

= = emmm 看了别人的方法才知道原来char类型也可以用于for循环, 不过会被直接换成数值
贴出来的别人的方法还用了字符串数组解决

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值