求一个正整数N的开平方(牛顿迭代法)

牛顿迭代法

解法参考:这里
在这里插入图片描述

	static double helper(int a) {
    
    
		if (n  < 2) return 1.0 * a;
		double x0 = 1; // 先假设一个初始值
		double x = x0 / 2 + a / x0 / 2; // 解, 把1-2的式子 = 右边括号展开
		while (Math.abs(x - x0) > 0.001) {
    
     // 误差范围
			x0 = x;
			x = x0 / 2 + a / x0 / 2;
		}
		return x;
	}

猜你喜欢

转载自blog.csdn.net/qq_43778308/article/details/111302731