由于诺基亚手机不止可以当作手机使用,还可以作为砖头防身,人人的员工小丁想测一测它从多高才能摔破。借助人人公司所在的静安中心大楼(共
27
层),小丁准备从
1
层开始一层一层的将诺基亚手机扔下去,直到摔破为止,显而易见,在最坏的情况下需要扔
27
次才能测出这个临界值(假定顶层的高度一定可以摔破这部诺基亚手机),小丁跟同事小李说了这个想法,小李说他这也有一部同型号的诺基亚手机,正好不用了给了小丁,现在小丁手中有两部诺基亚手机。
(
1
)请你帮忙计算一下在最坏情况下,小丁最少需要扔几次才能测出这个临界值,并且给出具体策略?(
PS
,两部手机,第一步手机选择第
k
层扔下去,若是没有摔坏我们可以继续拿来往楼下摔,若是摔坏了,只有一部手机了,还得按照之前一部手机的策略)
(
2
)现在我们发散一下,假设给你
m
部诺基亚手机,
n
层的高楼(假定顶层的高度一定可以摔碎),在最坏情况下至少需要扔多少次才能测出临界高度?程序实现,最好给出算法思想,假定输入若干组
m
和
n
,你的程序需要对每组
m
、
n
给出响应结果。(其中
m
属于
[1,50]
,
n
属于
[1,1000]
)