用c或者c++分液体的题目

来源:百度知道 编辑:UC知道 时间:2024/06/12 00:29:53
有谁帮我做一下这个题目吗
等分液体,在一个瓶子中装有8(N为偶数)升汽油,要平均分成两份,但只有一个装3(N/2-1)升的量杯和装5(N/2+1)升量杯(都没有刻度).打印出所有把汽油分成两等份的操作过程.若无解打印"No",否则打印操作过程.
用C或C++算法求解

说个思路吧
先装满3升的杯子,然后把3升的杯子里的水倒进5升的杯子里,再把3升的杯子装满,然后用3升的杯子往5升的杯子倒水,直到5升的杯子被装满,这个时候5升的杯子是满的,3升的杯子里还有1升水,8升的杯子里还有2升的水。

再把5升的杯子中的水全部倒进8升的杯子里。然后把3升杯子中剩余的1升水倒进5升的杯子里,再用8升的杯子里剩余的7升水去装满3升的杯子,然后把3升的杯子里的水倒进5升的杯子里。

这个时候,5升的杯子和8升的杯子分别有4升水