算法求解

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

那个~~我是学pascal的,给你说一下我的思路吧
设三个杯子按容量排列叫a,b,c
若N/2为奇数,则三个杯子无论怎么倒都是偶数,无法出现N/2 (数论问题)
若N/2为偶数
不断重复 a→b b→c c→a b→c的过程 (注意,最后c还剩有液体)
一定能实现,中间过程自己打就行了
下面是N/2为偶数的证明思路
用归纳法证明 重复i次过程后c杯剩下2i升
重复(N-4)/4次后c有(N-4)/2升,即差1升装满
再做a→b b→c后a中就有N/2了

我会做,来我宿舍吧,我跟你讲,,,,,

没看懂是什么意思,