Итак, у меня есть эта маленькая часть кода, которая повторяется столько, сколько потребуется, пока разница между искомым значением не будет ужасной. Я хочу подсчитать и распечатать количество итераций после того, как код будет выполнен, и, желательно, в моей основной функции (наряду с печатью всего остального, что мне нужно).Как подсчитать количество итераций с помощью Go?
Редактировать: Хорошо, мне удалось сделать это вот так. Интересно, есть ли более простой способ подсчета итераций и передачи их функции вывода.
func sqrt(x float64) (float64, int) {
k := 1
z := 1.0
q := (z*z - x)/(2*z)
for {
if math.Abs(-q) > 0.001 {
z -= q
q = (z*z - x)/(2*z)
k += 1
} else {
break
}
}
return z, k
}
func main() {
k := 1
z := 1.0
z, k = sqrt(9)
fmt.Println("Your sqrt = ", z)
fmt.Println("Math Sqrt = ",math.Sqrt(9))
fmt.Println("Iterations: ", k)
}
Вы можете передать несколько возвращаемых значений с помощью go. Просто измените свою подпись функции, чтобы выглядеть как func sqrt (x float64) (float64, int) {} –
@ william.taylor.09, и в конце я возвращаю z, k вместо просто z, если k - это имя моего целого числа? Как отделить их для печати? Я обновил свой пост своим исходным результатом. – Arthmost
См. Ответ, размещенный ниже –