python 练习题 69. x 的平方根
地址:https://leetcode-cn.com/problems/sqrtx/
1 ''' 2 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 3 4 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 5 6 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 7 8 9 10 示例 1: 11 12 输入:x = 4 13 输出:2 14 示例 2: 15 16 输入:x = 8 17 输出:2 18 解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 19 20 21 22 ''' 23 24 ''' 25 思路: 26 1.将目标值除2 27 2.如果 平方大于 目标值,则继续取该值除2 28 3.如果小于目标值,判断如果该值+1 大于目标值,则返回最终值,如果小于目标值,则该值+1,继续步骤2 29 30 ''' 31 32 33 34 35 class Solution: 36 def mySqrt(self, x: int) -> int: 37 newX = x 38 while True: 39 if newX <= 1: return newX 40 if newX ** 2 > x: 41 newX = int(newX / 2) if newX %2 ==0 else int(newX / 2) +1 42 else: 43 if (newX + 1) ** 2 > x: 44 return newX 45 else: 46 newX = newX +1
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sqrtx
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。