一尘不染

使用斐波那契数列的for循环来打印值时,它将最多显示47个值,以显示错误。

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号斐波那契数列。


阅读 355

收藏
2020-07-07

共1个答案

一尘不染

Fib(47)是2,971,215,073。2971215073大于2 31 - 1 …这是最大的32位带符号整数。

因此,您的计算正在溢出。(在许多编程语言中,您不会出错。您只会得到错误的答案。)

我如何找到100号斐波那契数列。

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

2020-07-07