#48 Cube rootの計算。
package main
import (
"fmt"
"math/cmplx"
)
func Cbrt(x complex128) complex128 {
var z complex128 = x
// なんとz,xが参照できる件w
f := func() complex128 {
//fmt.Println("z=", z, "x=", x)
for i := 0; i < 20; i++ {
z = z - ((z*z*z - x)/(3*z*z))
}
return z
}
return f()
}
func main() {
fmt.Println(Cbrt(2))
fmt.Println(cmplx.Pow(2, 1.0/3))
}
なんとなく関数の中に関数を定義してみた。理由はない。
Written with StackEdit.
No comments:
Post a Comment