关于一道微软面试题(据称)“飞机问题”详细解答

来源:互联网 发布:java飞机大战源码 编辑:程序博客网 时间:2024/05/22 14:14

今天上午上机课的时候,看论坛精华贴,第一名的题为“微软面试题”,遂好奇打开来看看,看到第二道题的时候,就想弄个明白,废话不多说,先发下题目:


 一道关于飞机加油的问题,已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互),没有加油机一箱油可供一架飞机绕地球飞半圈,
问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
答案是:三架。具体步骤,因为我不善于组织文字,所以做了个表格,相信大家一目了然。

飞机        01/81/41/23/47/81A

三架飞机同时起飞

分别给BC1/4油,剩余1/4,返航

 

满油反方向启航,迎接C

与C接头,给C1/4油,自身剩余1/4油,随C返航

接受B1/4

抵达

B

三架飞机同时起飞

接受A油,满油状态

给C1/4油,剩余1/2,返航

 

反方向启航,迎接AC

B在此处与AC相遇,分别给AC1/4油,然后一起返航

抵达

C

三架飞机同时起飞

接受A油,满油状态

接受B油,满油状态

飞过1/2

飞到3/4处,接收A送来的1/4油,飞向7/8

接受B1/4

C绕地球一圈,抵达机场




原创粉丝点击