因此,我有這樣一小段代碼,只要需要迭代,直到找到的值之間的差異很大。我想在代碼完成運行後計算並打印迭代次數,最好是在我的主函數中(以及打印所需的其他所有內容)。如何計算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)
}
您可以傳遞多個返回值。簡單地改變你的函數簽名看起來像func sqrt(x float64)(float64,int){} –
@ william.taylor.09最後我返回z,k而不是z如果k是我的整數的名字?我如何分開打印?我用我的原始輸出更新了我的文章。 – Arthmost
查看回答發佈如下 –