Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1134130
  • 博文数量: 103
  • 博客积分: 1897
  • 博客等级: 上尉
  • 技术积分: 1717
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-19 21:02
文章分类

全部博文(103)

文章存档

2013年(19)

2012年(84)

分类: C/C++

2012-09-26 18:21:52

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

思路:其实我们可以这样想,如果一架飞机既要给别人加油,又要飞回飞机场,那么它最多可以飞行的距离是1/6地球周长(L),如果两架飞机一起飞那么其中一架飞机最多能飞到2/6L处,那么另外的一架飞机最多能飞到4/6L处,但是此时,飞机飞不回来了,需要别人加油才行。如果飞机飞到4/6L处时,从飞机场的另一方面,两架飞机往相反的方向飞去,那么当与该飞机相遇时,刚好剩下2/6L的飞机油,此时如果飞机场那边再派两架飞机同时飞到1/6L去给两架飞机加油,就刚好回到基地。上叙过程有点乱,我们整理一下。
1 两架飞机A,B同时从飞机场出发,然后B到1/6处的时候,就返回把油加给了A
2 A飞到2/6L处的时候,另外两架飞机C,D同时从飞机场的相反方向出发,D飞到1/6L处时,把油都加给了C,C继续前进
3 在4/6L处,A,C相遇,C把油加给A,同时两架飞机E,F从基地出发,往C前进的方向。
4 在5/6L处,四机相遇,加油同时回到基地。

阅读(2798) | 评论(0) | 转发(0) |
0

上一篇:大数相乘

下一篇:操作系统概念---原语

给主人留下些什么吧!~~