题目描述
给定一个非负整数,求它的开方,向下取整。
输入输出样例
输入一个整数,输出一个整数。
Input: 8
Output: 2
8 的开方结果是 2.82842...,向下取整即是 2。
代码实现
def mySqrt(x): if x == 0: return 0 if x < 4: return 1 start , end = 2 , x//2 while True: mid = start + (end-start)//2 if mid**2 <= x and (mid+1)**2 > x: return mid if mid**2 < x: start = mid + 1 if mid**2 > x: end = mid - 1