题目

代码
牛顿迭代法—学过数值分析的应该都会,不会的百度也会
class Solution {
public int mySqrt(int x) {
if (x == 0) return 0;
double C = x, x0 = 2; //2是随便给的一个起始值,c是平方值即x
while (true) {
double xi = 0.5 * (x0 + C / x0);
if (Math.abs(x0 - xi) < 1e-7) break;
x0 = xi;
}
return (int) x0;
}
}
class Solution {
public int mySqrt(int x) {
if(x==0) return 0;
long sqr = x;
while(sqr*sqr>x) {
sqr = (sqr+x/sqr)/2;
}return (int)sqr;
}
}
结果

这篇博客介绍了如何使用Java编程实现平方根的计算,通过两种不同的牛顿迭代法来逼近平方根的精确值。第一种方法是用双精度浮点数进行迭代,直到差值小于1e-7;第二种方法则是用长整型进行迭代,不断更新平方值直至其平方小于原数。这两种方法都展示了牛顿迭代法在数值计算中的应用。

2万+

被折叠的 条评论
为什么被折叠?



