Python编程比赛--学校abcde五个地方参观,(1)如果去a必须去b,(2)de只能选一个(3)bc只能选一个(4)cd两地都去或都不去(5)如去e,ad也必须去。问,新生最多能去哪些地方参观?

Python编程比赛–新生要按一下条件从学校abcde五个地方参观,(1)如果去a必须去b,(2)de只能选一个(3)bc只能选一个(4)cd两地都去或都不去(5)如去e,ad也必须去。问,新生最多能去哪些地方参观?

题目描述:

题目:新生要按一下条件从学校abcde五个地方参观,(1)如果去a必须去b,(2)de只能选一个(3)bc智能选一个(4)cd两地都去或都不去(5)如去e,ad也必须去。

问,新生最多能去哪些地方参观?

代码:

#1代表去,0代表不去
for a in range(2):
    for b in range(2):
        for c in range(2):
            for d in range(2):
                for e in range(2):
                    if(a and (not b)):
                      continue
                    if((d and e)):
                        continue
                    if ((b and c)):
                        continue
                    if ((c and (not d)) or (d and (not c))):
                        continue
                    if (e and ((not a) or (not d))):
                        continue
                    print(a,b,c,d,e)

运行结果:
请添加图片描述

从运行结果可以看出:最多可以参观两个地方c、d或者a、b

算法思想:五个地方都有可能去或者不去,那么可以使用循环把所有的结果循环表示出来,从代码上可以看出来,我这使用了五层循环。然后在这些全部结果中,筛选满足五个条件的方案即可。
请添加图片描述

Guess you like

Origin blog.csdn.net/qq_56607768/article/details/121060898