为了账号安全,请及时绑定邮箱和手机立即绑定

Go 如何计算迭代次数?

Go 如何计算迭代次数?

Go
一只萌萌小番薯 2022-01-17 17:08:37
因此,我有一小段代码可以根据需要进行迭代,直到所寻求的值之间的差异非常大。我想在代码运行完成后计算并打印迭代次数,最好在我的主函数中(以及打印我需要的所有其他内容)。编辑:好的,我已经设法做到了。我想知道是否有一种更简单的方法来计算迭代并将它们传递给输出函数。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)}
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以返回您的浮点值和一个 int(作为迭代次数)。我对您的示例进行了非常小的修改以进行演示。


func sqrt(x float64) (float64, int) {


    z := 1.0

    i := 1

    q := (z*z - x) / (2 * z)

    for {

        if math.Abs(-q) > 0.01 {

            i++

            z -= q

            q = (z*z - x) / (2 * z)

        } else {

            break

        }

    }

    return z, i

}


func main() {

    f, i := sqrt(9)

    fmt.Printf("result: %f iterations: %d\n", f, i)

    fmt.Println(math.Sqrt(9))

}


查看完整回答
反对 回复 2022-01-17
?
交互式爱情

TA贡献1712条经验 获得超3个赞

您可以通过函数提供多个返回值:


func main() {

    numLoops, newNum := sqrt(9)

}


func sqrt(x float64) (int, float64) {

    <implementation>

}

GoPlay 在这里: https: //play.golang.org/p/R2lV41EbEd


查看完整回答
反对 回复 2022-01-17
  • 2 回答
  • 0 关注
  • 234 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号