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

学习golang,proect euler问题5。我在搞递归函数,我想不出一种方法来让返回值正确。


在 go 中,我无法在函数末尾取出 return,five()我也无法让它返回正确的值来执行main()函数中的 if 语句......


我意识到我可以在没有递归的情况下做到这一点,但如果可能的话,我想知道如何使用递归来做到这一点。


package main


import (

    "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")

        }

    }

}


慕运维8079593
浏览 155回答 1
1回答

杨魅力

除了上面的评论,一旦找到答案,它也应该打破。package mainimport (    "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;        }    } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go