微软面试题!(不知道什么时候的?)

bbcboy 2002-08-03 05:03:22
每个飞机只有一个油箱,
飞机之间可以相互加油(注意是相互,没有加油机)
一箱油可供一架飞机绕地球飞半圈,
问:
为使至少一架飞机绕地球一圈回到起飞时的飞机场
至少需要出动几架飞机?
(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
...全文
85 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
vampireonline 2002-08-06
  • 打赏
  • 举报
回复
3架
enchanter1982 2002-08-06
  • 打赏
  • 举报
回复
大家把出动架次的概念混淆了
出动架次:飞机起飞的次数
则liushmh(c++)是错误的
liushmh(c++)也是5架
kbsoft的解法是liushmh(c++)近似.
kbsoft是对的
应该是5架次,在不考虑误差的情况下。



ck_chuyun 2002-08-05
  • 打赏
  • 举报
回复
补充liushmh(c++)的观点,因为中途不能降落,应该另一架飞机反方向降落,所以是三架
wp03141592 2002-08-05
  • 打赏
  • 举报
回复
这个题应该是没有解的啊!!!
该题可转化为两层意思
(1)、同行的飞机仅可能早的飞回
(2)、飞回时不能有油剩余
时就达到了飞机最少的要求
假设绕地球一圈的路程为1,设有至少要n台飞机
那么要满足以上两点的话第一架飞机飞回时所走的路程应该是(1/2)/(n+1)
(第一架飞机飞回时应把其他的飞机都加满油)
第二架飞机飞回时也应该是(1/2)/(n+1),因为多了段路,少了一架飞机。
同理第n-1飞回时也应该是(1/2)/(n+1),
那么n-1架飞回是所走的路程是:[(1/2)/(n+1)]*(n-1)〈 1/2
所以飞机再多,在理论上不可能使至少有一架飞机绕地球一圈呀!

大家参考,,不知对不对啊??

亮剑_ 2002-08-04
  • 打赏
  • 举报
回复
celeil(蜡笔小新)的不行,“然后C直接飞回就ok了”,不会OK吧,如果没有飞机接的话。
liushmh(c++)的算法才是可以的。
这是个经典的行程问题,作了些改过,因为把路程变为球形的,可能想不到的。我就没有想到。
liushmh(c++),good.
celeil 2002-08-04
  • 打赏
  • 举报
回复
对哦~,我看错了,不好意思,嘿嘿~。
vs_net 2002-08-03
  • 打赏
  • 举报
回复
to:celeil(蜡笔小新)


如果按你的方法,那么c就会在3/4路程处坠毁的:)
vs_net 2002-08-03
  • 打赏
  • 举报
回复
同意liushmh(c++)

liushmh(c++)真是厉害啊!
leesky 2002-08-03
  • 打赏
  • 举报
回复
应该是5架次,在不考虑误差的情况下。
kbsoft的解法是对的.
矜持的射手 2002-08-03
  • 打赏
  • 举报
回复
有意思
同意楼上的
dcyu 2002-08-03
  • 打赏
  • 举报
回复
liushmh(c++)是对的。
dcyu 2002-08-03
  • 打赏
  • 举报
回复
liushmh(c++)是对的。
winco 2002-08-03
  • 打赏
  • 举报
回复
liushmh(c++) :
算法不错
kbsoft 2002-08-03
  • 打赏
  • 举报
回复
5架飞机,2架送,2架接,送到1/4处,在3/4处接。

推理:
3驾飞机一齐起飞,飞到1/8处,每驾飞机还剩下3/4的油,其中一驾把其余两驾灌满油,刚好能够返回。接下来两驾满油的飞机继续飞到1/4处,各剩下3/4的油,一驾把另外一驾装满之后,剩下1/2的油,刚好飞回。装满油的飞机从1/4处一直飞到3/4处,遇到反方向飞往3/4处的一架飞机,此时这架飞机还有1/2的油,两驾把1/2的油匀了之后,都可以飞到7/8处,这时遇到一驾前来迎接的飞机,这架飞机还有3/4的油,正好匀为每驾1/4的油,从7/8处飞回机场。
sun_srh 2002-08-03
  • 打赏
  • 举报
回复
14架
设一箱油飞的距离是1,则地球一圈是2
每架飞机的油都分成1/3,1/3,1/3。

1
1 1
1 1 1 1
11111111
一个1表示1架飞机,8架飞机可以使一架环绕地球一圈。
1/3的油是去的,1/3的油是加给旁边的飞机的,1/3的油是回来的。
8架飞机出去后,4架可以飞直接回来,1架绕一圈回来。2架在距机场1/3距离处(没油),1架在距机场2/3距离处。
再出动2架飞机可以让1/3处的2架飞机飞回来,再出动4架飞机可以让2/3处的飞机飞回来。
飞机出动的时间间隔很容易算出来的。
celeil 2002-08-03
  • 打赏
  • 举报
回复
设飞机A B C ,由西向东开
1/8路程时 A,B,C 个消耗1/4的油 A 为B,C 机加满油,A剩下1/4返回
1/4路程时 B,C 还剩下 3/4 的油 B为C机加油 剩下1/2 然后返回,此时C为满油
然后C直接飞回就ok了。因为一箱油可以飞半个地球的。
kwok_1980 2002-08-03
  • 打赏
  • 举报
回复
to:liushmh(c++) 你这样就对啦!

设飞机A B C ,由西向东开
1/8路程时 A,B,C 个消耗1/4的油 A 为B,C 机加满油,A剩下1/4返回
1/4路程时 B,C 还剩下 3/4 的油 B为C机加油 剩下1/2 然后返回,此时C为满油
然后,A,B回到机场,由东向西开 ,
B,先开到1/4处与C机碰头,然后,为C 加1/4的油
A机然后到1/8处与B,C 碰头,然后为B,C 加油,然后一起返回
kwok_1980 2002-08-03
  • 打赏
  • 举报
回复
to:liushmh(c++) 你这样就对啦!

设飞机A B C ,由西向东开
1/8路程时 A,B,C 个消耗1/4的油 A 为B,C 机加满油,A剩下1/4返回
1/4路程时 B,C 还剩下 3/4 的油 B为C机加油 剩下1/2 然后返回,此时C为满油
然后,A,B回到机场,由东向西开 ,
B,先开到1/4处与C机碰头,然后,为C 加1/4的油
A机然后到1/8处与B,C 碰头,然后为B,C 加油,然后一起返回
kwok_1980 2002-08-03
  • 打赏
  • 举报
回复
to:sky_color(梦幻的笑容)
照你这样的话,航空公司不就发了
xietnt 2002-08-03
  • 打赏
  • 举报
回复
同意liushmh(c++)的观点
两架
加载更多回复(16)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧