有趣的分油算法

分油算法:一个桶中有12斤油最多也只能装12斤,要求倒出6斤,可现在另外只有两个桶,分别可装9斤与5斤,请问应如何来倒?
程序如何实现

倒退法:12斤油桶设为a,5斤油桶设为b,9斤油桶设为c

假设油已经倒出完毕,呢么a,b,c三个桶里面的油,肯定有一个桶是6斤油,而肯定不是b,因为b最多能装5斤油,也就是说6斤的油肯定不是在a中就是在b中,又因为总共有12升,所以可以肯定的是ac各6斤油,而b则为0,

下面是具体的倒油过程:

初始阶段:a=12,b=0,c=0

1.从a桶向b桶中倒油,直到b桶倒满为止,这时a桶剩下a=12-5=7,而b桶则为b=5,

2.从b桶向c桶倒油,直到b桶的油倒完为止,此时c=5,而b=0,

3.从a桶向b桶中继续倒油,直到b桶满了,此时a=12-5-5=2,而b=5

4.从b桶向c桶中倒油,直到c桶满了为止,这时c=5+4=9,而b=5-4=1

5.将c桶中的油全部倒入a中,此时a=2+9=11,而b=1,

6,将b中的油全部倒入c中,此时b=0,c=1,

7.将a中的油倒入b中,直到b满了为止,此时b=5,a=11-5=6,

8.将b中的油全部倒入c中,此时c=1+5=6,b=0

倒油完毕!!!!!

//伪代码

function daoyou (){

$a=12,$b=0,$c=0;

$a=12-5;

$b=5;

$c=$b;$b=0;

$a=12-5-5;$b=5;

$c=9;$b=$b-(9-$b);

$a=$a+$c;

$c=$b;$b=0;

$b=$a-($a-5);$a=$a-$b;

$c=$c+$b;

echo "到油完毕:";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值