斐波那契在迅速的操场

时间:2018-10-24 18:37:24

标签: 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])
    }
}

calculateFibonacciFucntionUntil(userInput: 10)

1 个答案:

答案 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没有用于存储大量数字的内置类型,因此,如果要执行此操作,则需要使用第三方库或自己实现适当的数据类型。