题目:
你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?
第一次想法:
第1次:跑250公里,放下500吨煤,剩余250吨煤刚好回去。
第2次:跑500公里,放下250吨煤,剩余250吨回到第1次停车点,拉上第1次停车250吨回到起点,第一次起点250公里处还剩下250吨煤,第二次起点500公里处剩余250吨煤。
第3次:跑250公里,消耗250吨,拉上起点1剩余的250,在跑到起点2又消耗250,拉起点2的250吨,此时车上刚好1000吨,跑完剩下的500公里,最后剩下500吨。
第二次想法:
第一次1000吨煤全部给你消耗,给我把剩余2000吨能拉多远就拉多远! 可求得距离x:1000=5x, x=200。 解得:3000吨煤消耗1000吨运了200公里,剩余2000吨煤,800公里。
第二次同样给你1000吨煤消耗,给我把剩余1000吨能拉多远就拉多远! 可求得距离y:1000=3y, y=1000/3。解得:2000吨煤消耗1000吨运了1000/3公里,剩余1000吨煤,800-(1000/3)公里。
第三次:1000吨煤一次拉完不用回来,消耗多少剩余都是剩下的。解得:1000-(800-(1000/3))=1000-800+(1000/3)=200+333.3=533.3吨