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

golang递归函数如何检查返回?

golang递归函数如何检查返回?

Go
慕运维8079593 2022-03-03 16:09:37
学习golang,proect euler问题5。我在搞递归函数,我想不出一种方法来让返回值正确。在 go 中,我无法在函数末尾取出 return,five()我也无法让它返回正确的值来执行main()函数中的 if 语句......我意识到我可以在没有递归的情况下做到这一点,但如果可能的话,我想知道如何使用递归来做到这一点。package mainimport (    "fmt"    //"os")func recursive(num int, div int) int {    if div == 1 {        fmt.Println(num)        return num    }    switch num % div {    case 0:        recursive(num, div-1)    default:        return -1    }    return num}func main() {    for i := 20; ; i += 20 {        if recursive(i, 19) == 1 {            fmt.Println("finished")        }    }}
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

除了上面的评论,一旦找到答案,它也应该打破。


package main


import (

    "fmt"

    //"os" 

)


func recursive(num int, div int) int {

    if div == 1 {

         return 1

    }

    switch num % div {

    case 0:

        return recursive(num, div-1)

    default:

        return -1

    }

    return num

 }


 func main() {

    for i := 120; ; i += 20 {

        if recursive(i, 19) == 1 {

            fmt.Printf ("finished with %v\n", i)

            break;

        }

    }

 }


查看完整回答
反对 回复 2022-03-03
  • 1 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信