30 строки
470 B
Go
30 строки
470 B
Go
// Copyright 2012 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
)
|
|
|
|
const delta = 1e-6
|
|
|
|
func Sqrt(x float64) float64 {
|
|
z := x
|
|
n := 0.0
|
|
for math.Abs(n-z) > delta {
|
|
n, z = z, z-(z*z-x)/(2*z)
|
|
}
|
|
return z
|
|
}
|
|
|
|
func main() {
|
|
const x = 2
|
|
mine, theirs := Sqrt(x), math.Sqrt(x)
|
|
fmt.Println(mine, theirs, mine-theirs)
|
|
}
|