//Go Exercise: Loops and Functions

//1.Newton's method

package main

import (
"fmt"
"math"
)

//普通求解10次返回近似值
func Sqrt(x float64) float64 {
z := x / 2.0
for i := 0; i < 10; i++ {
z -= (z*z - x) / (2 * z)
}
return z
}
//无限接近求解,返回近似值
func Sqrt2(x float64) float64 {
z := x / 2.0
for {
y := z - (z*z-x)/(2*z)
if math.Abs(y-z) < 1e-10 {
return y
}
z = y
}

return z
}

func main() {
fmt.Println(Sqrt(2))
fmt.Println(Sqrt2(2))
}

 

//未完待续

posted on 2022-07-19 10:14  小草原  阅读(35)  评论(0编辑  收藏  举报