for循环代码有什么问题?

时间:2019-03-15 11:04:02

标签: r

我必须创建一个函数ans(k),该函数可以返回每个斐波那契数小于或等于k的向量。我知道循环的基础知识,但我无法理解逻辑。有人可以解释一下我如何解决上述问题。我试过的是:

我首先创建了一个向量

k<-c(1, 1)

然后像往常一样创建我使用的功能:

ans <- function(k) {
+ for(i in k){

然后将k向量修改为:

k=c(k, k[i-1] + k[i-2])
}
return(k)
}

我要去哪里错了?请帮忙。

1 个答案:

答案 0 :(得分:0)

ans <- function(n) {
  k<-c(1, 1)
  for(i in 3:n){
    k=c(k,k[i-1]+k[i-2])
  }
  return(k)
}

ans(5)
  1. 您不能两次使用k作为和索引以及斐波那契系列的存储空间!
  2. 您的系列从3开始,因为前两个是1和1
  3. 另一方面,由于范围和明确性,最好将k保留在ans函数中!