最后一道智力题我倒是有点思路: 每一次不能只倒一半(倒入杯子要么满,要么倒出杯子空),所以对于某种状态: 我们首先尝试把不空的倒到空的杯子里面,也可以尝试把不空的倒到没满的杯子里面。至于满的杯子再倒过去显然没用了。还可以尝试把不空的杯子倒空。 这样一来每一种状态都有好几种转移方法。使用BFS遍历每一种状态转移,找到了终止状态(A=4)就算成功了。不使用DFS是因为它的搜索深度比较深,复杂情况可能有问题。