Определите значение в функции последовательности Фибоначчи для меня a = b и b = sum, может кто-нибудь объяснить, что они делают - PullRequest
0 голосов
/ 29 января 2020
function fib (n) {
  var output = [];
    var a=0;
    var b=1;
    for(var i=0; i<n; i++){
      if(i===0){
        output.push(i);
      } else if(i==1){
        output.push(1);
      } else{
        var sum=a+b;
        output.push(sum);
        a=b;
        b=sum;
      }
    }
    return output;
}

Не могли бы вы помочь мне определить, что делает a = bb = sum и как она работает. Я действительно не понимаю, только начал учиться.

1 Ответ

0 голосов
/ 30 января 2020

В вашем примере оба "a" и "b" являются переменными. Они определены вне рамок для l oop. По этой причине их значение может быть видоизменено и сохраняться в течение жизни в течение l oop.

ie

var a = 0;
for (var i = 0; i < 5; i++) {
   a = a + 1;
}
console.log(a)

, если вы запустите это, «a» будет равно 5 в журнале консоли.

В вашем примере функция получает n-е число в последовательности Фибоначчи. a и b являются сохраненными значениями, которые необходимо перенести на следующую итерацию. «a» представляет последнее итерированное значение, а b представляет ожидающее итоговое значение.

, если вы передали 6, например:

Первая итерация: i равно 0, поэтому pu sh 0.

Вторая итерация: i равно 1, поэтому pu sh 1.

Третья итерация: сумма будет установлена ​​в a (0) + b (1), поэтому 1. тогда будет установлено a 1 (наше последнее известное значение b), а затем b будет установлено в 1 (наша новая сумма)

Четвертая итерация: сумма будет установлена ​​в a (1) + b (1), поэтому 2. a будет затем будет установлено значение 1 (снова), а b будет установлено в 2.

Пятая итерация: сумма будет установлена ​​в a (1) + b (2), так что 3. тогда будет установлено значение 2 и b будет установлено на 3.

Шестая итерация: сумма будет установлена ​​на a (2) + b (3), поэтому 5. a тогда будет установлено на 3, а b будет установлено на 5.

и for l oop будет заканчиваться и возвращать вывод, который будет: 0, 1, 1, 2, 3, 5

Это первые 6 чисел в последовательности Фибоначчи.

Надеюсь, это поможет вам.

...