问题
一个3毫升的空杯子,一个5毫升的空杯子,和一个8毫升装满水的杯子。
不可以使用其他容器,使5毫升和8毫升的杯子各装4毫升水
人工解决
3毫升 5毫升 8毫升
0 0 8
8→5 ### 0 5 3
5→3 ### 3 2 3
3→8 ### 0 2 6
5→3 ### 2 0 6
8→5 ### 2 5 1
5→3 ### 3 4 1
3→8 ### 0 4 4
在手工计算出之后
我大约用了15分钟从思考思路到编写代码,思考8分钟左右
想挑战的不要直接看代码,自己想一下
看看其他大神有没有新颖的解题思路请留言供大家观摩
code
# 问题:一个3毫升的空杯子,一个5毫升的空杯子,和一个8毫升装满水的杯子
# 不可以使用其他容器,使5毫升和8毫升的杯子各装4毫升水
import random
a = 0
b = 0
c = 8
while b != 4 or c != 4:
d = random.randint(0, 5)
if d == 0:
if a > 0:
if b < 3:
b += a
a = 0
elif d == 1:
if a > 0:
if c < 6:
c += a
a = 0
elif d == 2:
if b > 0:
if b > 3 - a:
b -= 3-a
a = 3
else:
a += b
b = 0
elif d == 3:
if b > 0:
if c < 8:
if b+c < 9:
c += b
b = 0
else:
b = b+c-8
c = 8
elif d == 4:
if c > 0:
if a < 3:
if c > 3-a:
c -= 3-a
a = 3
else:
a += c
c = 0
elif d == 5:
if c > 0:
if b < 5:
if c > 5-b:
c -= 5-b
b = 5
else:
b += c
c = 0
print('a==', a, 'b==', b, 'c==', c, 'd==', d)
print('终于成功了 a==', a, 'b==', b, 'c==', c)
TravellerHui
转发评论收藏加关注呦
转发评论收藏加关注呦