我收到这个错误,说我没有使用变量……但在我的菜鸟眼中,我看起来像:func Sqrt(x float64) float64 { z := float64(x); for i := 0; i < 10; i++ { z := z - (z*z - x) / (2 * z); } return z;}谁能指出我对语言的遗漏?我认为这与=vs.:=和范围界定有关,但我不确定。
2 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
在:=您的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
}
芜湖不芜
TA贡献1796条经验 获得超7个赞
这是查看函数的另一种方式
func Sqrt(x float64) (z float64) {
z = x
for i := 0; i < 10; i++ {
z = z - (z*z - x)/(2*z);
}
return
}
- 2 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消