小学的题 大学的解法
本题节选自《C/C++程序员面试指南》一书
面试题7:飞机绕地球环行问题
已知每架飞机有一个油箱,飞机之间可以相互加油,一整油箱的油可以供一架飞机绕地球飞行半圈。为使至少一架飞机绕地球一圈回到飞机起飞的机场,至少需要使用几架飞机,飞行几个架次?
所有飞机从同一飞机场起飞,而且必须安全返回机场,不允许中途降落,一架飞机起飞一次算作一架次,加油时间可以忽略。
1.所涉及的知识点
· 作图法
· 计算法
2.分析问题
借助于图形解决问题的方法就是图形法。根据问题中已知的条件,采用适当的方法画出图形,有助于问题的解决。有些问题,在没画图之前,会觉得无从下手,画了图后就一目了然了。
对于本题只是用脑子去想象来解决这道题是件很复杂的事,如果借助于图形来解决就简单多了。在此假设地球的长度为1,根据题意可知一油箱的油可以让一架飞机绕地球持续飞行1/2。现假设飞机起飞地点为x,如图12.9所示。
图12.9 飞机环行地球示意图
根据条件可推知,只用一架飞机肯定是无法完成任务的。当用两架飞机时,两架飞机的油量刚好够一架飞机绕地球一圈,无论怎么补充也完成不了航行任务。所以至少有三架飞机,设为飞机A,飞机B和飞机C。整个飞行过程如下:
(1)三架飞机同时从飞机场x同向起飞。如图12.10所示。
(2)到1/8时A、B和C的可持航油量都为3/8,此时C将油量的1/8给B,另外1/8的油量给A后,A和B的剩余可持航油量1/2,C剩余1/8的可持航油量正好足够返航。A、B继续飞行,C返航,如图12.11所示。
图12.10 三架飞机同时逆时针起航 图12.11 C返航
(3)到达1/4处时A和B的可持航油量都为3/8,C已返回机场。此时B将1/8的油量给A,A的可持航油量为1/2,B的可持航油量为1/4恰好可以安全返航,此时A继续绕地球飞行,B返航,如图12.12所示。
(4)当A到达1/2处时,A的可持航油量为1/4,此时A继续绕地球飞行。B已经到达机场,B加满油顺时针起飞,如图12.13所示。
图12.12 B返航 图12.13 B顺时针起航
(5)A和B在3/4处相遇,此时A的可持航油量为0,B的可持航油量为1/4,B将1/8的可持航油量分给A后,A、B的油量相等,都为1/8。A和B同时逆时针飞行,C此时在机场装满油顺时针起飞。如图12.14所示。
(6)A、B和C相遇在7/8处,此时A和B的油量为0,C的油量为1/4,C将1/8的可持航油量分给A,再将1/8的可持航油量分给B后,三者的油量相同,都恰好够飞回机场。三架飞机逆时针向机场飞行,如图12.15所示。
图12.14 C顺时针起航,B逆时针返航 图12.15 C逆时针返航
(7)三架飞机同时安全返回机场,飞机A成功绕地球飞行一圈。
共用了三架飞机,A起飞一次,B起飞两次,C起飞两次。所以共用了三架飞机,5个航次。
根据观察可以发现后1/2的飞行情况是前1/2的反序。所以在分析完前1/2时,就已经可以算出总共需要的飞机架次。
3.答案
共用了三架飞机,5个航次。
事实上,许多问题都要运用几种不同的方法才能解决。所谓综合法,就是综合各种方法(包括前述各种方法以外的方法)去解决某些问题。所以不要只是简单地硬套方法,应该了解各种方法的技巧,随机应变。
书名:C/C++程序员面试指南
作者:杨国祥 等编著
ISBN 978-7-121-10359-9
出版日期:2010年3月出版
定价:49.00元
宣传语
从企业面试的角度来梳理C/C++程序员的技术功底
以技术经理的眼光来审视对C/C++编程知识的掌握
内 容 简 介
C、C++语言是IT行业的主流编程语言,也是很多程序员必备的软件基本功,是软件开发行业招聘考查的重点。本书以流行的面试题讲解为主要内容,介绍了C、C++语言基本概念,包括保留字、字符串、指针和引用、结构体、库函数等各个方面的基础知识,介绍了面向对象编程基本概念,包括如何实现继承、多态和封装等。还介绍了排序算法及数据结构的实现,包括链表、堆栈、队列和树。此外,本书开始用两章篇幅详细介绍了中英文面试的注意事项、常见问题及程序员的职业规划等软件工程师的常识。最后四章详细讲解了现在流行的智力测试题。
本书的特点是在详细介绍C、C++面试中常见技术问题的同时,还详细讲解了智力测试的基本方法及数学能力、推理能力和反应能力的常见测试题。本书适合正在找工作的应届毕业生,也适合想要换工作而基础知识不扎实或不熟悉智力测试的老程序员。
购买地址: 当当网 卓越网 中国互动出版网
同类书推荐:.NET程序员面试指南(含光盘1张) Java程序员面试指南
本书详细信息:http://www.broadview.com.cn/10359
更多图书信息:www.broadview.com.cn
最新活动:2010年5月08日 博文视点大讲堂第26期——中国移动创新系列丛书《OPhone应用开发权威指南》读者交流活动
想即时获取更多图书及活动资讯,赶快加入博文视点读者俱乐部 吧!
小学的题 大学的解法相关推荐
- 一道小学奥数题的编程解法
一道小学奥数题的编程解法 这是一道小学奥数题,看到这一题后如果只给我笔和纸,我真的无从下手,不知怎么去把这些方框填出来.但借助编程,这道题就非常简单了.直接送上代码. C++程序代码 #include ...
- LeetCode 148. Sort List--面试算法题--C++,Python解法
LeetCode 148. Sort List–面试算法题–C++,Python解法 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有题目总结 大 ...
- C# 解某道小学奥赛题
小学奥赛题: 黑板上写着一个形如8888--88的数,每次擦掉一个末位数,把前面的数乘2,然后再加上刚才擦掉的数,对所得的新数继续操作,最后得到的数是多少? using System; using S ...
- 小学计算题一次大满足
海量小学计算题 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 120 300 • Esti ...
- c语言 奥数题目及答案,小学奥数题C语言解法
朋友给我发了一个小学的奥数题,尝试解了一会儿没有找到方法,于是编辑了一个小程序解决了 上面的是题目 下面的是实现的代码,仅做参考 #include #ifdef __cplusplus extern ...
- LeetCode 445. Add Two Numbers II--面试算法题--C++,Python解法
题目地址:Add Two Numbers II - LeetCode You are given two non-empty linked lists representing two non-neg ...
- LeetCode 141. Linked List Cycle--面试编程题--C++,Python解法
题目地址:Linked List Cycle - LeetCode Given a linked list, determine if it has a cycle in it. To represe ...
- 【解题报告+通法】_九宫幻方 蓝桥杯 2017年C组第八题(dfs解法)
题目描述 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行.每一列和每一条对角线的和都是相同的. 三阶幻方又被 ...
- 一道皮皮物理题的皮皮解法
" 从前,有一位叫做马克思 普朗克(Max Planck)的很帅的物理学家.有一天,他正在思考黑体辐射问题.他看了一下旁边的钟正一秒一秒的过去.于是他突发奇想,会不会能量也是像钟的秒针这样, ...
- 3dsmax学校教室模型_从小学教室到大学教室的开放项目合作
3dsmax学校教室模型 教学实践应建立在协作和重新混合内容的基础上. 当朋友要我们解释一些事情时,我们不会在未要求输入任何内容的情况下将答案标记为商标或独白. 这是一个简单的示例,但它涉及到我们现有 ...
最新文章
- Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型
- 从头开始 启动开源电商项目jShop
- SystemTap工具的使用基础
- filebeat获取nginx的access日志配置
- apache ab压力测试学习
- vscode 预览图片 插件_真的动手写的VSCode的插件(图片浏览)之1
- python 函数进度条怎么_刷新你对进度条的认识,用python写出不一样的进度条
- Linux如何清除系统密码,如何消除LINUX系统密码
- Python输入,输出,Python导入
- UI自动化测试篇 :Selenium2(Webdriver)TestNG自动化测试环境搭建
- Assembly初识
- 港交所上新衍生工具:“界内证”——交易规则与投资价值全解析
- 树莓派安装raspbian并配置开发环境
- PLSQL Developer 13安装教程
- 智能手机linux系统下载软件,智能手机下载工具
- android 多媒体音频占用情况监听
- 天翼网盘在线直链解析源码
- 移动终端安全问题分析与解决方案研究
- Java实习生常规技术面试题每日十题Java基础(一)
- 这次,大数据工程师赢了!
热门文章
- SQL中char、varchar、nvarchar的区别
- Java测试代码及原理
- 处理模型——通过扩展模型处理器直接处理每个ModelMesh的顶点位置数据
- yum 崩溃的解决方法
- 梆梆加固还原DEX文件
- ORA-06502: PL/SQL: numeric or value error: character to number conversion error 错误的解决方法...
- python max int
- CSDN 编辑器使用指南
- 【往届已EI稳定检索】第二届计算机科学与管理科技国际学术会议,多主题征稿!...
- 【经验】聊自己非计算机专业做程序员的经验