1.思路

给定一个数x,求解x的开方,取半值逐渐逼近。

  1. GoLang
1
2
3
4
5
6
7
func Sqrt(x float64) float64 {
    z := x / 2 // 猜测值
    for i := 0; i < 10; i++ {
        z -= (z*z - x) / (2 * z) // 逐渐逼近
    }
    return z
}
  1. Python
1
2
3
4
5
def Sqrt(x: float) -> float:
    z = x/2
    for i in range(10):
        z -= (z*z - x)/(2 * z)
    return z