[Leetcode]@python 69. Sqrt(x)
2016-01-13 10:20
661 查看
题目链接
https://leetcode.com/problems/sqrtx/题目原文
Implementint sqrt(int x).
Compute and return the square root of x.
题目大意
实现一个整型的开平方根解题思路
使用牛顿迭代法进行求解牛顿迭代公式
设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。
代码
class Solution(object): def mySqrt(self, x): """ :type x: int :rtype: int """ if x == 0: return 0 ans = float(x) while True: tmp = ans ans = (ans + x / ans) / 2 if abs(ans - tmp) < 1: break return int(ans)
相关文章推荐
- python爬虫抢火车票
- Python + Requests + BeautifulSoup每日BUG汇总
- Robot Framework: 自定义自己的python库
- python赋值对象的指向改变规律
- WingIDE5.1安装以及激活(Python集成环境的搭建)
- [Leetcode]6. ZigZag Conversion @python
- Python时间模块datetime、time、calendar的使用方法
- 详解python时间模块中的datetime模块
- python基础入门学习笔记(Python环境搭建)
- Python数据类型学习笔记
- python编辑工具pycharm中文输入报错解决方法
- [Python]python中的__import__
- python学习第三天
- Python爬虫学习稿(三)
- python学习记录(1)
- Python合并两个列表的方法
- python核心编程-正则表达式之-重复、特殊字符、子组
- [Python标准库]datetime——日期和时间值管理
- python---购物
- 运维:windows+python+route的一次相遇