在
:=您的for循环声明了一个新的变量
z,其阴影外
z。将其变成平原
=以解决问题。
func Sqrt(x float64) float64 { z := x for i := 0; i < 10; i++ { z = z - (z*z - x) / (2 * z); } return z;}顺便说一下,为了获得相同的精度和更快的速度,您可以尝试以下实现,该实现一次执行两个步骤:
func Sqrt(x float64) float64 { z := x for i := 0; i < 5; i++ { a := z + x/z z = a/4 + x/a } return z }


