学习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;
}
}
}
- 1 回答
- 0 关注
- 146 浏览
添加回答
举报
0/150
提交
取消