gpt4 book ai didi

swift - 具有中间结果的阶乘 - Swift playgrounds - 索引超出范围错误

转载 作者:行者123 更新时间:2023-11-28 10:48:06 25 4
gpt4 key购买 nike

看久了会瞎。无法发现错误。调用函数时出现“索引超出范围”错误 factorialIntermediateResults(n: 4) 希望有人能用新的眼光看一下并帮助我发现错误。谢谢!

func factorialIntermediateResults(n: Int) -> [Int] {
if n == 0 || n == 1 { return [1] }
var results = [Int]()
doAllFactorials(n, &results, 0)
return results
}

func doAllFactorials(_ n: Int, _ results: inout [Int], _ level: Int) -> Int {
if n > 1 {
results[level] = n * doAllFactorials(n-1, &results, level+1)
return results[level]
} else {
results[level] = 1
return 1
}
}

factorialIntermediateResults(n: 4)

最佳答案

results 是一个空数组,但您尝试访问值而不先附加值。

最简单的解决方案可能是用零预填充数组。

var results: [Int] = Array(repeating: 0, count: n)

关于swift - 具有中间结果的阶乘 - Swift playgrounds - 索引超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47604162/

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