import numpy as np def bin_search_sqrt(num): left, right = 0, num while right - left > 1: mid = (left + right) // 2 if mid ** 2 > num: right = mid else: left = mid return right if right**2 - num < num - left**2 else left for i in range(15, 37): print(i,bin_search_sqrt(i),np.sqrt(i))输出: 16 4 4.0 17 4 4.12310562562 18 4 4.24264068712 19 4 4.35889894354 20 4 4.472135955 21 5 4.58257569496 22 5 4.69041575982 23 5 4.79583152331 24 5 4.89897948557 25 5 5.0 26 5 5.09901951359 27 5 5.19615242271 28 5 5.29150262213 29 5 5.38516480713 30 5 5.47722557505 31 6 5.56776436283 32 6 5.65685424949 33 6 5.74456264654 34 6 5.83095189485 35 6 5.9160797831 36 6 6.0看上去好像是可以的?
点赞 1

相关推荐

02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
牛客网
牛客企业服务