我正试图找到5000之前的最高斐波那契数。这是我到目前为止的代码:
n <- 5000
fib <- c()
fib[1] <- 1
fib[2] <- 1
c <- 1
i <- 3
repeat {
fib[i] <- fib[i-1] + fib[i-2]
i <- i+1
c <- c+1
if (fib[i]>=5000) {
break
}
h <- fib[c]
print(h)
}
我收到的错误是:
Error in if (fib[i] >= 5000) { : missing value where TRUE/FALSE needed
关于如何解决的任何想法?我知道我的代码并不完美,但是我正在学习:)
答案 0 :(得分:1)
您在陈述前加注i
:i-1
是您要比较的。此外,这不会给您5000之前的最高数字。因此,您必须在break
之前再次执行该语句。
n <- 5000
fib <- c()
fib[1] <- 1
fib[2] <- 1
c <- 1
i <- 3
repeat {
fib[i] <- fib[i-1] + fib[i-2]
i <- i+1
c <- c+1
if (fib[i-1] >= 5000) {
h <- fib[c]
print(h)
break
}
h <- fib[c]
print(h)
}