[LeetCode]题解(python):069-Sqrt(x)

时间:2022-01-10 22:24:50

题目来源:

  https://leetcode.com/problems/sqrtx/


题意分析:

  实现一个整型的开根。


题目思路:

  利用牛顿迭代法可以求解。首先讲数据类型转成浮点数,然后选取初始值为n/2,然后用牛顿迭代,直到迭代结果相差小于1.0,最后将浮点数转回整型。


代码(Python):

  

 class Solution(object):
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
if x == 0:
return 0
ans = float(x)
newx = ans
ans /= 2
while True:
tmp = ans
ans = (ans + newx / ans) / 2.0;
if abs(tmp - ans) < 1:
break
return int(ans)

转载请注明出处:http://www.cnblogs.com/chruny/p/5045512.html