前言:
而今咱们对“python顺序结构的典型问题及答案”大概比较关怀,兄弟们都想要分析一些“python顺序结构的典型问题及答案”的相关知识。那么小编同时在网上收集了一些有关“python顺序结构的典型问题及答案””的相关内容,希望兄弟们能喜欢,你们一起来了解一下吧!注:本文如涉及到代码,均经过Python 3.7实际运行检验,保证其严谨性。
本文阅读时间约为4分钟。
排序与查找编程练习题2:第一个坏版本
现在有同一个产品的N个版本,编号为从1至N的整数;其中从某个版本之后所有版本均已损坏。现给定一个函数isBadVersion,输入数字N可判断该版本是否损坏(若损坏将输出True);请找出第一个损坏的版本。
注:有时isBadVersion函数运行速度很慢,请注意优化查找方式。
输入格式:
两行。
第一行为整数,为产品号总数N。
第二行为给定的判断函数,使用有效的Python表达式给出,可使用eval读取。
输出格式:
一行数字,表示第一个损坏的版本。
输入样例:
50lambda n:n>=30
输出样例:
30
示例代码模板:
N = int(input())isBadVersion = eval(input()) def firstBadVersion(n): # code here pass print(firstBadVersion(N))
解答:本题有两种查找方法:顺序查找法及顺序查找法。顺序查找法比较简单粗暴,直接顺序查找即可,我们用效率更高的二分法来处理。 参考代码如下:
# 排序与查找编程练习题2:第一个坏版本。N = int(input())isBadVersion = eval(input())def firstBadVersion(n): low = 1 high = n while low <= high: mid = (low + high) // 2 # 设立中值。 if isBadVersion(mid): high = mid - 1 else: low = mid + 1 return lowprint(firstBadVersion(N))
To be continued.
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python顺序结构的典型问题及答案