班委成员选举逻辑判断(python)

你在某班班委成员的选举中,已知王小红、李强、丁金生三位同学被选进了班委会.该班的甲,乙,丙三名 学生预言如下.

甲说:王小红为班长,李强为生活委员.

乙说:丁金生为班长,王小红为生活委员.

丙说:李强为班长,王小红为学习委员.

班委会分工名单公布后发现,甲、乙、丙三人都恰好猜对了一半,问:王小红、李强、丁金生各任何职?

代码如下:

ls = [0, 1]
for hongban in ls:  # 当王小红是班长时,0代表不是,1代表是
    for hongxue in ls:  # 当王小红是学习委员时,0代表不是,1代表是
        for hongsheng in ls:  # 当王小红是生活委员时,0代表不是,1代表是
            for qiangban in ls:  # 当李强是班长时,0代表不是,1代表是
                for qiangxue in ls:  # 当李强是学习委员时,0代表不是,1代表是
                    for qiangsheng in ls:  # 当李强是生活委员时,0代表不是,1代表是
                        for jinban in ls:  # 当丁金生是班长时,0代表不是,1代表是
                            for jinxue in ls:  # 当丁金生是学习委员时,0代表不是,1代表是
                                for jinsheng in ls:  # 当丁金生是生活委员时,0代表不是,1代表是
                                    if (jinban + jinxue + jinsheng == 1) \
                                            and (hongban + hongsheng + hongxue == 1) \
                                            and (jinban + jinxue + jinsheng == 1) \
                                            and (hongban + qiangban + jinban == 1) \
                                            and (hongxue + qiangxue + jinxue == 1) \
                                            and (hongsheng + jinsheng + qiangsheng == 1):  # 每个人只能担任一种职位且每种职位只能由一人担任
                                        jia = (hongban + qiangsheng == 1)
                                        yi = (jinban + hongsheng == 1)
                                        bing = (qiangban + hongxue == 1)
                                        if jia + yi + bing == 3:
                                            print('''王小红是班长:{} 李强是班长:{} 丁金生是班长:{}
王小红是生活委员:{} 李强是生活委员:{} 丁金生是生活委员:{}
王小红是学习委员:{} 李强是学习委员:{} 丁金生是学习委员:{}'''. \
                                                  format(hongban, qiangban, jinban,
                                                         hongsheng, qiangsheng, jinsheng,
                                                         hongxue, qiangxue, jinxue))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值