gpt4 book ai didi

swift - Swift 中的斐波那契单线

转载 作者:行者123 更新时间:2023-12-01 08:53:28 32 4
gpt4 key购买 nike

我正在尝试一些代码高尔夫,我有这个功能:

    func fibonacci(n: Int) {

var x1=0
var x2=1
var arr = [Int]()

for _ in 1...n {
arr.append(x1)
let temp = x1+x2
x1 = x2
x2 = temp
}
print(arr)
}

我想尝试一种单线方式,即:

print((1...n).reduce(([Int](),[0,1]), { ($0.0 + [$0.1[0]],[$1.1[1],$1.1[1]+$1.1[0]])}))

但我收到了这个蹩脚的编译器消息:

the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions

有更好的方法吗?谢谢

最佳答案

您不需要实际构造一个Array。您可以使用 the sequence function一次生成一个斐波那契数列:

sequence(first: (0, 1)) { a, b in (b, a + b) }
.prefix(10)
.forEach { a, _ in print(a) }

输出:

0
1
1
2
3
5
8
13
21
34

如果您想了解更多关于序列的理论基础,请阅读 anamorphisms .

关于swift - Swift 中的斐波那契单线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59539675/

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