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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

posted @ 2022-04-27 20:29  菜小鱼~  阅读(81)  评论(0编辑  收藏  举报