Что не так с кодом цикла? - PullRequest
0 голосов
/ 15 марта 2019

Мне нужно создать функцию 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 голосов
/ 15 марта 2019
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 функции из-за объема и ясности!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...