火车运煤问题

下面是一个比较经典的智力题:你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?

 

我的解决思路如下:

3000吨煤  每次只能装1000,每次都装1000吨,则往返次数最少,消耗最低,至少需要分三步

第一步:先运一车煤1000吨到中间某处,然后倒在此处,设中间该点距离起点是x公里,则(来回两趟+去一趟=5)5x = 1000,则x=200,第一趟运1000吨到x公里处:倒600吨放x处;第二趟运1000吨:倒600吨放x处;第三趟运1000吨;到达x处时车上剩800吨,从x处装200吨,此时车上的加上x处的煤共剩2000吨。

 

第二步:

根据往返次数最低,则需跑2趟:在距离x处的y公里处倒。

3y = 1000;y = 333.33 约等于333

则需消耗1000吨,则剩1000吨,此时距离终点是1000-200-333.33 约等于467.

 

第3次:

根据往返次数最低,则只需跑1趟

直接运剩下的1000吨到终点 消耗467 就剩533吨

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值