使用for循环for fibonacci系列打印值,它将打印最多47个值,超过它显示错误

时间:2015-07-09 12:21:44

标签: swift

 var num = "100"
 var num = text2.text.toInt()
        var temp = 0
        var temp2 = 1
        if (nu == 1) {
            println(1)
        }
        else {
            for var valued = 2; valued<num;++valued {
            var temp3 = temp + temp2
            temp = temp2
            temp2 = temp3
            println("\(temp3)")

        }

我想打印斐波那契数字系列。该数字应该是用户应该选择的任何一个。我的代码在上面我必须选择num为100但它最多可以打印47个值。这里打印的最终值是1836311903.它最多不会打印到100.它显示错误。我如何找到数字为100的斐波纳契系列。

1 个答案:

答案 0 :(得分:1)

Fib(47)是2,971,215,073。

2,971,215,073大于2 31 - 1 ...这是最大的32位有符号整数。

因此你的计算是溢出的。 (在很多编程语言中,你不会有错误。你会得到错误的答案。)

  

我如何找到数字为100的斐波纳契系列。

您不能使用简单的整数运算。您将需要使用Swift等效的Java BigInteger类。