【问题标题】:Fibonacci code for loop not returning values循环的斐波那契代码不返回值
【发布时间】:2021-02-02 06:25:46
【问题描述】:

我正在尝试编写一个代码,您可以在其中输入一个数字n,然后该代码会返回斐波那契数列中的数字。 例子: 输入 n = 1 时代码返回 1,输入 n = 2 时代码返回 1,输入 n = 3 时代码返回 2,以此类推。 我是 javascript 的初学者,所以我不知道该怎么做。

<html>
<body>
    <script type="text/javascript">
    function fibonacci(){
    var a, b, n, result;
    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 = result;
        
    }
    document.getElementById("result").value = result;
    }
    </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>

【问题讨论】:

  • i
  • 添加此行n =document.getElementById("n").value
  • 具体在哪里?

标签: javascript html fibonacci


【解决方案1】:

你没有初始化n,对吧?

在 for 循环之前添加这一行。

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

检查您的浏览器控制台是否有错误,它会正确显示此类错误..

【讨论】:

  • 这行得通,但我现在的问题是当我使 n = 0 / n = 1 时,代码不起作用。另外,如果我输入 n = 2 它应该返回 1 但它返回 2
【解决方案2】:
  1. 你应该初始化 n。
  2. 然后从 for 循环块中删除 n==0 和 n==1。
  3. 更新您的代码如下,
<html>
<body>
    <script type="text/javascript">
    function fibonacci(){
    var n = document.getElementById("n").value;
    var result;
    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 = result;

      }
    }
    document.getElementById("result").value = result;
    }
    </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>

【讨论】:

    猜你喜欢
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2011-08-10
    相关资源
    最近更新 更多