Swift 斯威夫特运动场中的斐波那契
有人能告诉我为什么我写的这段代码只在Swift 斯威夫特运动场中的斐波那契,swift,Swift,有人能告诉我为什么我写的这段代码只在userInput小于94之前有效吗 func calculateFibonacciFucntionUntil(userInput: Int) { var array = [0 ,1] for i in 2...userInput { array.append(i) array[i] = array[i - 1] + array[i - 2] print(array[i]) } } cal
userInput
小于94之前有效吗
func calculateFibonacciFucntionUntil(userInput: Int) {
var array = [0 ,1]
for i in 2...userInput {
array.append(i)
array[i] = array[i - 1] + array[i - 2]
print(array[i])
}
}
calculateFibonacciFucntionUntil(userInput: 10)
问题在于
Int
只能存储64位数字(在64位平台上),而Fibonacci 95大于64位上可以存储的最大数字
斐波那契95是3194043463499009905
,而Int64
能容纳的最大数字是2^63-1=9223 372 036 854 775 807
Swift没有用于存储大量数字的内置类型,因此,如果您想这样做,您需要使用第三方库或自己实现适当的数据类型。Int64(签名)可以容纳的最大值为2^63-1。请查看此答案: