Код Фибоначчи для цикла, не возвращающего значения

#javascript #html #fibonacci

#javascript #HTML #фибоначчи

Вопрос:

Я пытаюсь создать код, в котором вы вводите число n , и код возвращает вам число в последовательности Фибоначчи. Пример: при вводе n = 1 код возвращает 1, а при вводе n = 2 код возвращает 1, а при вводе n = 3 код возвращает 2 и так далее. Я совсем новичок в javascript, поэтому я не знаю точно, как это сделать.

 <html>
<body>
    <script type="text/javascript">
    function fibonacci(){
    var a, b, n, resu<
    a = 0;
    b = 1;
    for (var i = 0; i <= n; i  )
    {
        if(n == 1)
        {
            return 1;
        }
        if(n == 0)
        {
            return 0;
        }
        result = a   b;
        a = b;
        b = resu<
        
    }
    document.getElementById("result").value = resu<
    }
    </script>
    <form>
        <input id="n" type="number" placeholder="N">
        <input id="result" type="number" placeholder="Result" readonly="">
        
        <input id="calculate" type="button" value="Calculate" onclick="fibonacci()">
        <input type="reset" value="Clear">
    </form>
</body>
</html>
 

Комментарии:

1. i <=n не может произойти, если n равно нулю, нет?

2. добавьте эту строку n =document.getElementById("n").value

3. Где именно ?

Ответ №1:

Вы не инициализировали n, верно?

Добавьте эту строку перед циклом for .

 n =  document.getElementById("n").value
 

Проверьте консоль вашего браузера на наличие ошибок, она правильно отображает ошибки такого рода..

Комментарии:

1. Это работает, но моя проблема сейчас в том, что когда я делаю n = 0 / n = 1, код не работает. Также, если я поставлю n = 2, он должен вернуть 1, но возвращает 2

Ответ №2:

  1. Вы должны инициализировать n .
  2. Затем удалите n==0 и n==1 из блока цикла for .
  3. Обновите свой код следующим образом,
 <html>
<body>
    <script type="text/javascript">
    function fibonacci(){
    var n = document.getElementById("n").value;
    var resu<
    var a = 0;
    var b = 1;
    if(n == 0 || n == 1)
    {
        result = n;
    }
    else{
      for (var i = 2; i <= n; i  )
      {
          result = a   b;
          a = b;
          b = resu<

      }
    }
    document.getElementById("result").value = resu<
    }
    </script>
    <form>
        <input id="n" type="number" placeholder="N">
        <input id="result" type="number" placeholder="Result" readonly="">
        
        <input id="calculate" type="button" value="Calculate" onclick="fibonacci()">
        <input type="reset" value="Clear">
    </form>
</body>
</html>