微软面试题 飞机加油

背景:一道关于飞机加油的问题,已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机一箱油可供一架飞机绕地球飞半圈。
问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

 

 

 1号2号3号4号
1号1   
2号1+1/3(1/3)*2  
3号1+1/4+1/4(1/4+1/4)*2(1/4)*2 
4号1+1/5+1/5+1/5(1/5+1/5+1/5)*2(1/5+1/5)*2(1/5)*2

 

分析:设一箱油能飞1,1为地球的半圈。让1号飞机飞地球一圈。

a,如果只有一个飞机1号飞机只能飞半圈,而且不能返回。

b,如果有两个飞机,飞机2号在飞了1/3后,将自己的1/3油给1号飞机,2号自己还有1/3的油正好可以返回,1号飞机这个时候最多可以飞到1+1/3。

c,如果有三个飞机,飞机3号在1/4处,将1/4油给1号,1/4油给2号,自己留1/4正好返回,飞机2号在飞1/2时将1/4油给1号,自己还有1/2的油正好可以放回。这种情况1号飞机可以飞到1+1/4+1/4了。

d,这里有一个特别的地方,这时候要从另一个方向去给这个飞机加油,当1号飞机飞到1时,启动2号去接1号飞机,当遇到1号飞在1/2时,将1/4的油给1号飞机,1号和2号飞机飞到1/4时,3号飞机去接,每个飞机1/4油正好返回。

 

注意:一开始啊,这个脑袋没有转过弯来(越来越笨了),没有想到,可以反方向去接的,老是正方向去推,觉得这个题无解,哎,可悲啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值