我搜索过较旧的问题,有很多。但是我找不到我的案例的答案。
func fibonacci() func() int {
y := 0
z := 1
return func () int {
res := y + z
y = z
z = res
return res
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
这会产生 1 2 3 5 8
我应该改变什么(尽可能少)才能得到 0 1 1 2 3 5 8 ?
实际上我设法解决了这个问题,如果最初y是z这样的:
y := -1
z := 1
但这是一个幸运的黑客,我想要一个合乎逻辑的解决方案。
慕码人8056858
缥缈止盈
牧羊人nacy
相关分类