有人可以指导我为什么我编写的这段代码仅在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)
答案 0 :(得分:1)
问题是Int
只能存储64位数字(在64位平台上),而Fibonacci 95大于可以在64位上存储的最大数字。
斐波那契95是31 940 434 634 990 099 905
,而Int64
可以容纳的最大数字是2^63-1 = 9 223 372 036 854 775 807
。
Swift没有用于存储大量数字的内置类型,因此,如果要执行此操作,则需要使用第三方库或自己实现适当的数据类型。