题解 | 平方根
平方根
https://www.nowcoder.com/practice/cd21e09482f24b03842f02ae3d403cad
def get_sqrt(num):left = 1right = numans = 0
while left <= right:
# 二分取中间值
mid = (left + right) // 2
# 核心精髓:判断当前mid是不是合法的平方根
if mid <= num // mid:
ans = mid # 合法,记录答案
left = mid + 1 # 尝试找更大的
else:
right = mid - 1 # 太大了,往左缩小范围
return ans
调用测试
if name == "main":n = int(input())print(get_sqrt(n))
查看22道真题和解析