Nth Fibonacci术语JavaScript * JS *的新内容

时间:2017-10-24 15:23:46

标签: javascript function for-loop input fibonacci

<!DOCTYPE HTML>
<html>
<title>Fibonacci Assignment</title>
<head>
    <script>
        function chkInput(){
        var n = parseInt(n1)
        var a,b,r;
        a = 0;
        b = 1;
        r = 1;
            for(var i = 2; i <= n; i++){
                r = a + b;
                a = b;
                b = r;
            }
            alert (r);
        }
    </script>
</head>
<body>
    <input type="text"
           id="n1">
    <input type="button"
           value="Enter"
           onclick="chkInput(n1.value)">
</body>
</html>

我是JavaScript的新手,我一直在尝试构建一个代码,用于查找Fibonacci序列的第N个术语,其中用户输入一个数字,序列一直运行到第n个数字。我的任务是同时使用函数和for循环。但是当我运行它时,无论我输入什么数字,它都会返回1.我的问题是为什么会这样?我是学生所以我只需要大方向而不是答案。这个片段是我到目前为止的。

3 个答案:

答案 0 :(得分:0)

您需要使用像document.getElementById("n1").value

这样的DOM函数来获取元素的值

你的算法也应该有a = 1;

&#13;
&#13;
function chkInput(){
        var n = parseInt(document.getElementById("n1").value)
        var a,b,r;
        a = 1;
        b = 1;
        r = 1;
       
         for(var i = 2; i <= n; i++){
                r = a + b;
                a = b;
                b = r;
                
         }   
            alert (r);
        }
&#13;
<!DOCTYPE HTML>
<html>
<title>Fibonacci Assignment</title>
<head>
    <script>
       
    </script>
</head>
<body>
    <input type="text"
           id="n1">
    <input type="button"
           value="Enter"
           onclick="chkInput(n1.value)">
</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您没有将文本输入值捕获为参数。

你有:

checkInput()

应该是

chkInput(n1)

所以你的行

var n = parseInt(n1);

正在解析undefined,因此n的值现在是NAN(非数字),因此for循环从未执行过。

function chkInput(n1) {
  var n = parseInt(n1);
  var a, b, r;
  a = 0;
  b = 1;
  r = 1;
  for (var i = 2; i <= n; i++) {
    r = a + b;
    a = b;
    b = r;
  }
  alert(r);
}
<input type="text" id="n1">
<input type="button" value="Enter" onclick="chkInput(n1.value)">

答案 2 :(得分:0)

你差不多完成了作业。

您错过了在函数定义中接收的值。

函数chkInput(){更改为函数chkInput(n1){将完成您的作业。

在下面找到您的工作代码段。

<!DOCTYPE HTML>
<html>
<title>Fibonacci Assignment</title>
<head>
    <script>
        function chkInput(inputValue) {
          var n = parseInt(inputValue)
          var a,b,r;
          a = 0;
          b = 1;
          r = 1;
           for(var i = 2; i <= n; i++){
                r = a + b;
                a = b;
                b = r;
            }
            alert (r);
        }
    </script>
</head>
<body>
    <input type="text" id="n1">
    <input type="button" value="Enter" onclick="chkInput(n1.value)">
</body>
</html>