Что не так с кодом цикла for?

#r

#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:

 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 как и index и как хранилище вашей серии fibonnaci!
  2. Ваша серия начинается с 3, потому что две первые — это 1 и 1
  3. С другой стороны, лучше хранить его k внутри ans функции из-за области видимости и ясности!