使用插入值显示斐波那契数列

时间:2019-01-27 18:08:01

标签: javascript jquery html

我想制作一个脚本,使用插入的数字并使用斐波那契数列显示所有数字,直到该特定数字为止。

所以我已经有了斐波那契代码,但是我似乎无法正确编写脚本,因此它将使用插入的数字。当我从console.log使用fibonacci代码时,它可以正常工作。

这是脚本

  var n =$("#num").val();
  $('#shw').click(function(){
      function fibonacci(n){
          var a,b,result;
          a=0;
          b=1;
          result=b;
          for(var i=1; i<n; i++)
          {
              document.write(result+" " );
              result=a+b;
              a=b;
              b=result;
          };
      };
  });
  
 Please Enter Number: <input type="number" id="num" name="num"> <button name="shw" id="shw">Submit</button>
    

我不能接受插入的值并显示斐波那契数列直到第n个数字。该按钮不起作用。

4 个答案:

答案 0 :(得分:1)

您需要在click事件的侦听器内部读取输入的值,并最终使用该值调用fibonacci()。我已经为此重组了您的代码:

function fibonacci(n)
{
    var a = 0, b = 1, result = 1;

    for (var i = 1; i < n; i++)
    {
        document.write(result + " ");
        result = a + b;
        a = b;
        b = result;
    }
}

$('#shw').click(function()
{
    var n =$("#num").val();
    fibonacci(n);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Please Enter Number: <input type="number" id="num" name="num">
<button name="shw" id="shw">Submit</button>

答案 1 :(得分:0)

将变量n移入click函数。否则,在用户输入任何输入之前先分配n

<script>
    $('#shw').click(function(){
        function fibonacci(){
            var a,b,result;
            var n =$("#num").val();
            a=0;
            b=1;
            result=b;
            for(var i=1; i<n; i++)
            {
                document.write(result+" " );
                result=a+b;
                a=b;
                b=result;
            };
        };
    });
</script>

答案 2 :(得分:0)

n移至内部函数,然后调用fibonacci。在您的代码中,您只是在定义fibonacci而未调用它。

更好的选择是直接将fibonacci分配给点击事件。

$('#shw').click(function(){
  var n =$("#num").val();
  function fibonacci(n){
  var a=0,b=1,result=1;
    for(var i=1; i<n; i++){
      document.write(result+" " );
      result=a+b;
      a=b;
      b=result;
    };
};
fibonacci(n)
});
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
<body>
Please Enter Number: <input type="number" id="num" name="num"> <button name="shw" id="shw">Submit</button>
</body>

答案 3 :(得分:0)

点击按钮后获取您的电话号码n

var btn = $('#shw');
var input = $("#num");

function fibonacci(n) {
  var a, b, result;
  a = 0;
  b = 1;
  result = b;
  for (var i = 1; i < n; i++) {
    document.write(result + " ");
    result = a + b;
    a = b;
    b = result;
  };
};

btn.click(function(){
  fibonacci(input.val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Please Enter Number: 
<input type="number" id="num" name="num"> <button name="shw" id="shw">Submit</button>