[问题] 搞不懂是除法还是啥出了问题

楼主: Nessa1103 (紫藤)   2015-03-18 17:17:13
在学习 Go Playground Programming Language 时出现一个不知道怎么办
的 Bug。
题目:用牛顿法( Sqrt(x)=z- [(z^2)-x]/2z )计算平方根并观察数字变化
http://go-tour-zh-tw.appspot.com/#25
程式的骨架没问题,但牛顿法这行快整死我了orz
==以下为完整程式码,直接贴在上面网址中左上视窗就可以了==
==版本一==
package main
import (
"fmt"
)
func Sqrt(x float64) float64 {
var a, b, c float64 = x, 9.0, 0.0
for i :=0; i<10; i++ {
c=b- [ (b*b-a)/2b ] // 这行有bug无法执行
a=b
b=c
fmt.Println(a,b) // 测试a和b的变化
}
return b
}
func main() {
fmt.Println(Sqrt(2))
}
==版本二==
package main
import (
"fmt"
)
func Sqrt(x float64) float64 {
var a, b, c float64 = x, 9.0, 0.0
for i :=0; i<10; i++ {
c=b- [ (b*b-a)/2b ] // 这行有bug无法执行
a=b
b=c
fmt.Println(a,b) // 测试a和b的变化
}
return b
}
func main() {
fmt.Println(Sqrt(2))
}
==版本三==
package main
import (
"fmt"
)
func Sqrt(x float64) float64 {
var a, b, c, d, e float64 = x, 9.0, 0.0, 0.0, 0.0
for i :=0; i<10; i++ {
e=b*b-a
d=e/2b // 这行有bug无法执行
c=b- d
a=b
b=c
d=0.0
e=0.0
fmt.Println(a,b) // 测试a和b的变化
}
return b
}
func main() {
fmt.Println(Sqrt(2))
}

Links booklink

Contact Us: admin [ a t ] ucptt.com