在R码的fibonacci序列中,替换的长度为零

  • 本文关键字:替换 码的 fibonacci r
  • 更新时间 :
  • 英文 :


所以我有这个fibonacci序列的代码,当我试图打印出函数的值时,我总是收到一个错误。

fibonacci <- function(nn) {
if (!(nn%%1==0) | (nn<1)){
return(0)
} 
my.fib <- c(1,1)
for (kk in 3:nn){
my.fib[kk] <- my.fib[kk-1] + my.fib[kk-2]
}
return(my.fib[nn])
}
fibonacci(7)   
fibonacci(5)   
fibonacci(1)   
fibonacci(1.5) 
fibonacci(0)   

它正确地打印了7,5,1.5和0的所有内容,因为它给了我值13、5、0和0。但是当试图打印fibonacci(1(时,我得到了错误

Error in my.fib[kk] <- my.fib[kk - 1] + my.fib[kk - 2] : 
replacement has length zero

我希望尽可能多地保留相同的代码。

添加另一个if条件以检查nn = 1

fibonacci <- function(nn) {
if (!(nn%%1==0) | (nn<1)){
return(0)
} else if(nn == 1) return(1)
my.fib <- c(1,1)
for (kk in 3:nn){
my.fib[kk] <- my.fib[kk-1] + my.fib[kk-2]
}
return(my.fib[nn])
}

最新更新