首页 > 试题广场 >

飞机最低可俯冲高度

[编程题]飞机最低可俯冲高度
  • 热度指数:301 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
近日,埃航空难的新闻牵动了无数人的心。据悉,空难很可能是由于波音737MAX飞机的失速保护系统错误触发所致。在飞机进行高空飞行时,驾驶辅助系统如果检测到飞机失速,无法维持足够的飞行升力,会压低机头进行俯冲,以重新获得速度,进而获取足够的飞行升力,维持飞行高度。但是在飞机进行低空飞行时,触发俯冲机制极有可能在飞机还未获得足够飞行速度并上升之前已经撞击地面。鉴于半年内的两起事故,波音公司决定在低于一定高度时屏蔽自动俯冲机制,现提供K架飞机用于测试最低可俯冲高度,设定需要测试的海拔范围为1~H(单位米),请问最不理想情况下,至少需要多少次才能求出飞机的最低可俯冲高度?

输入描述:
输入为整数K, H,用空格分隔

K代表用于测试的飞机数量,H代表需要测试的高度范围为1~H米(包含H)


输出描述:
输出整数N,代表最坏情况下需要测试的次数
示例1

输入

1 1000

输出

1000

说明

只有一架飞机用来测试的情况下,从最高高度1000米,逐次减1m进行测试,直到飞机坠毁。
示例2

输入

15 1000

输出

10

说明

飞机数量足够多,每次均使用二分法进行测试

备注:
1-H为低空飞行高度范围,所有大于H的高度都不属于低空飞行,不会在俯冲过程中撞击地面,不需要进行测试。

如果飞机俯冲测试过程中撞击地面坠毁,可以推断本次测试高度低于飞机实际最低可俯冲高度,可测试飞机数量减1。

如果飞机俯冲测试过程中撞击地面前顺利拉升,可以推断本次测试高度高于或等于飞机最低可俯冲高度,本次试验所用飞机可继续用来测试。

tips:
测试飞机中使用无人驾驶远程操控,无需担心飞行员安全。
无需考虑物理学上的合理性。