【面试题-算法】----面试经典算法题|7升、5升水杯,如何量出6升水?两种解法全过程图解 一、题目描述 题目现有两个无刻度水杯容量分别为7L和5L水源无限供应。允许操作装满杯子倒空杯子A杯倒水至B杯B满则停止目标精确量出6L的水。先抛出结论存在两种主流可行操作方案下面分步拆解。二、前置规则说明 所有操作遵循固定约束杯子没有刻度只能依靠装满/倒空、互相倾倒不能借助额外容器每次倾倒必须倒到接收杯满或者倒出发送杯变空。三、方案一以7升杯作为主容器推演 设A7LB5L容器A 桶 7LB 桶 5L目标得到 6 升A (7,0)倒满 7 升桶A (2,5)7 升桶倒满 5 升桶7 升桶剩余 2LA (2,0)清空 5 升桶A (0,2)7 升桶里的 2L 倒入 5 升桶A (7,2)再次倒满 7 升桶A (4,5)7 升桶把 5 升桶倒满5 升桶原有 2L还能装 3L7 升桶剩余 4LA (4,0)清空 5 升桶A (0,4)7 升桶内 4L 倒入 5 升桶A (7,4)再次倒满 7 升桶10.A (6,5)7 升桶倒满 5 升桶还能装 1L7 升桶剩余 6L ✅四、方案二以5升杯作为起始推演 设A7LB5L操作流程(0,5)B装满(5,0)B倒入A(5,5)B再次装满(7,3)B向A倒水填满AB剩余3(0,3)清空A(3,0)B中3升倒入A(3,5)B装满(7,1)B倒入AA可再装4升B剩余1(0,1)清空A(1,0)B中1升倒入A(1,5)B装满B倒入A → A 15 6L ✅五、方案三快速大约法无厘头7和5的杯子都装满假设杯子的杯身是圆柱体然后目测或借助工具测量一下杯子中部打个刻度 7和5都各倒一半加起来就是 3.52.5 6总结方法一 7 主杯 7-1方法二 5 主杯 15方法三 7和5各倒一半