LeetCode-Sqrt(x)-解题报告

原创 2015年07月08日 20:55:59

原题链接 https://leetcode.com/problems/sqrtx/

Implement int sqrt(int x).

Compute and return the square root of x.


用数学的方法求解sqrt(x)


可以使用牛顿迭代法,也可以使用二分法。

我使用的是牛顿迭代法,前段时间看到一个求解x^(-2)的快速解就用的是牛顿迭代法。


设 x^2 - n == 0 方程的非负根便是解。f '(x) = 2x, 

对于点(x0,f(x0)),对过该点原图像的切线方程为y - f(x0) = 2x0(x - x0),

该切线与x轴的交点更接近正确解。

 x比x0更接近准确解。

化简后得到 ,迭代值x与x0的值相差为1e-10是停止迭代。





class Solution {
public:
   int mySqrt(int x) {
		if (x == 0)return 0;
		double  cur = x;
		double pre;
		do{
			pre = cur;
			cur = (cur + x / cur) / 2;
		} while (abs(cur - pre) > 1e-10);
		return (int)cur;
	}
};


相关文章推荐

[Leetcode] 69. Sqrt(x) 解题报告

题目: Implement int sqrt(int x). Compute and return the square root of x. 思路: 这道题目挺有意思,虽然基本思...

[LeetCode] Sqrt(int x)解题报告之无限逼近(牛顿法)

Implement int sqrt(int x). Compute and return the square root of x. 求一个数
  • hyc__
  • hyc__
  • 2014年11月14日 12:41
  • 1268

Leetcode 69. Sqrt(x) 解题报告【C库函数sqrt(x)模拟-求平方根】

69. Sqrt(x) Total Accepted: 93296 Total Submissions: 368340 Difficulty: Medium 提交网址: https://leetc...

leetCode 69.Sqrt(x) (平方根) 解题思路和方法

Implement int sqrt(int x). Compute and return the square root of x. 思路:因为本题是int类型的数据,所以可以使用二分法...

Leetcode 473. Matchsticks to Square 卖火柴的小女孩画框框 解题报告

1 解题思想这道题的意思就是卖火柴的小女孩有一堆长度不等的火柴,他希望拼成一个正方形,不知道可以不可以?所谓可以就是: 1、用了所有火柴,一根不多,一根不少,当然一根用一次 2、四条边长度一样所以...
  • MebiuW
  • MebiuW
  • 2016年12月19日 19:27
  • 2898

【LeetCode】01 Matrix 解题报告

【LeetCode】01 Matrix 解题报告标签(空格分隔): LeetCode题目地址:https://leetcode.com/problems/01-matrix/#/description...

Leetcode #61. Rotate List 循环位移链表 解题报告

1 解题思想题目的意思是如果有一个链表,现在让你循环向右位移K步,得到一个新的开头的链表,例子可以看原题的实例。首先有一个你要明白的是,向右移动的K步,可能会大于链表的长度N,于是乎你需要这么做:1、...
  • MebiuW
  • MebiuW
  • 2016年05月01日 23:32
  • 1174

【LeetCode】Min Stack 解题报告

【题目】 Design a stack that supports push, pop, top, and retrieving the minimum element in constant t...
  • ljiabin
  • ljiabin
  • 2014年11月10日 16:17
  • 17588

leetCode解题报告5道题(三)

5道题目分别是:【Binary Tree Zigzag Level Order Traversal】、【Convert Sorted Array to Binary Search Tree和Conve...

【LeetCode】Majority Element 解题报告

Majority Element[LeetCode]https://leetcode.com/problems/majority-element/Total Accepted: 110538 Tota...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode-Sqrt(x)-解题报告
举报原因:
原因补充:

(最多只允许输入30个字)