曾经看到过的面试题.

来源:百度知道 编辑:UC知道 时间:2024/06/23 07:54:21
题目:美国战机F-16由于战略需要,做环球航行,环球飞行的距离为S,已知F-16的最大载油量允许其最大连续航行距离1/2*S(一满箱油飞半个地球),,所有飞机只能从一个机场起飞/降落(中间无任何机场),飞行中间只允许飞机互相加油,那么,问要让一架飞机达到全球飞行的目的,至少要出动多少架次飞机?
在50分钟以内,用程序写出下面题目的解决方案,所用语言不限,代码行数不要超过100行,允许有一点点语法错误。

首先A和B一起起飞,A为环球航行飞机,B为护送飞机,两架飞机的油都设为T,当A和B走到环球的八分之一时,B把自己的一半油送给A,此时A的油为2/3T,这是A的油刚好够走到全球的3/4处,B沿原路返回。

其次在A和B的反方向,又有两架飞机C和D,全都是满装油T,当C和D反方向飞到环球的八分之一的时候,D把自己的油的一半加给C,C的油为2/3T,D沿原路返回。C遇到A时,是在环球的四分之三处,A的油刚好用尽,C又把1/2T的油的加给A,C和A一起沿A方向飞行,当A和C同时飞回来的是后,C和A的油都刚好用尽.”

[PHP]
$p = new plane(); // p是个飞机对象
$n = 0; //代表飞机数量
//$d代表飞行的距离
for($d=0;$d<=$s;$d++){
if ($p.oil <=x){ // x代表油量,晕啊,因为题目也没写飞机是怎么耗油的
$p.oil += getfly(); //oil 是p的一个属性,代表飞机的油量

$n++;
}
}
echo $n;