gpt4 book ai didi

algorithm - 我应该在代码中更改什么以生成从 0 1 1 开始的斐波那契数列

转载 作者:数据小太阳 更新时间:2023-10-29 03:31:18 26 4
gpt4 key购买 nike

我搜索了较早的问题,其中有很多。但是我找不到我的案例的答案。


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 ?

实际上我设法解决了如果初始 yz 是这样的:

    y := -1
z := 1

但这是一个幸运的 hack,我想要一个合乎逻辑的解决方案。

最佳答案

更改您的函数以将 res 返回到此:

 return func () int {

res := y
y = z
z = res + z

return res

}

这样你首先输出初始值,然后计算下一个值。您当前的解决方案会在返回初始值之前覆盖它们。

关于algorithm - 我应该在代码中更改什么以生成从 0 1 1 开始的斐波那契数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57129276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com