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
算法思想:五个地方都有可能去或者不去,那么可以使用循环把所有的结果循环表示出来,从代码上可以看出来,我这使用了五层循环。然后在这些全部结果中,筛选满足五个条件的方案即可。