算法之装几升水

最开始的问题:有两个杯子,一个6升(cup1)、一个5升(cup2),怎么样得到3升水?

第一次:6升的杯子装满,然后倒进5升杯子里面,那么cup1=1,cup2=5;倒掉cup2中的所有-- cup2=0,然后将cup1中的转给cup2–cup2=1

第二次:当前cup1=0,cup2=1(可以装5升,但现在已经装了1升);装满cup1=6,cup2=1; 将cup1的倒过去,cup1=2,cup2=5;倒掉cup2中所有–cup2=0,然后将cup1的倒过去-- cup2=2

同理,cup2可以装3,4,5升水

因为,随着5升杯不断增多(0,1,2,3,4),那么6升杯中多出去的就少
cup2=0时,cup2还能装5升,那么cup1比cup2多1
cup2=1时,cup2还能装4升,那么cup1比cup2多2
cup2=2时,cup2还能装3升,那么cup1比cup2多3
cup2=3时,cup2还能装2升,那么cup1比cup2多4

延伸过去,7升和5升杯子呢?

5升杯子可以2,4的装

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值