您的位置:首页 > 编程语言 > Python开发

[Leetcode]69. Sqrt(x)解析@Python

2017-08-27 11:47 381 查看

题目:

Implement int sqrt(int x).

Compute and return the square root of x.

题意:

编码实现开方函数 sqrt。

注意:返回值、输入值是int。

1. 二分查找:

def mySqrt(self, x):
l, r = 0, x
while l <= r:
mid = l + (r-l)//2
if mid * mid <= x < (mid+1)*(mid+1):
return mid
elif x < mid * mid:
r = mid
else:
l = mid + 1


2.看到讨论区的一个方法,不知所云,查了资料才发现用的是数学公式的推导(牛顿法)。

来自: StefanPochmann

class Solution(object):
def mySqrt(self, x):
r = x
while r*r > x:
r = (r + x/r) / 2     #化简后的公式
return r


牛顿法公式:

x2=x1−x21−n2x1

其中x1是上次计算结果,x2是本次计算结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: