题目链接:
https://leetcode.com/problems/sqrtx/description/
描述
Implement int sqrt(int x).
Compute and return the square root of x.
输入
输入一个自然数
输出
输出该自然数的平方根(最接近的)
样例输入
16 18 |
样例输出
4 4 |
算法思想:
这道题使用到了本科学过的数值分析,可以使用牛顿迭代法,非常经典。跟泰勒公式很像。
牛顿迭代法简介下:
[牛顿迭代法简介:http://blog.csdn.net/young_gy/article/details/45766433]
源代码
class Solution {
public:
int sqr(double x)
{
double k=x;
while(k*k-x>1e-6)
k=0.5*(k+x/k);
return k;
}
int mySqrt(int x) {
int ans = sqr(x);
return ans;
}
};