在javascript中使用循环找到第n个术语斐波那契序列

时间:2015-01-07 13:44:07

标签: javascript loops for-loop while-loop fibonacci

我刚刚在这里使用Javascript,我想问你如何制作一个简单的斐波纳契生成器,当用户输入任何数字时,它会找到斐波纳契数列的第n项。示例代码已经给出。

<html>
<body>
the number inserted in this textbox will find the nth term of the fibonacci sequence. The sample is 4 where the 4th term is 5. 
<script type="text/javascript">
function myFunction() {
var x = document.f1.n1.value;
if(x=4) {

document.write(5);
}
}
</script>
<form name="f1" onsubmit="return false">
First no. <input type="text"name="n1" value=3 disabled>
<input type="submit" value=GO onClick="myFunction()">
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

document.write(getAmount(x));

function getAmount(x) {
    if(x < 3) {
        return 1;
    } else { 
        return getAmount(x - 1) + getAmount(x - 2);
    }
}

不确定是否所有正确的符号/语言,但这是您需要的逻辑。

答案 1 :(得分:0)

这是一个带递归调用的工作示例:

&#13;
&#13;
function myFunction(getLucas) {
  var x = document.f1.n1.value;
  if (getLucas) {
      alert(lucas(x));
  }
  else {
      alert(fib(x));
  }
}

function fib(n) {
  if (n < 2) {
      return n;
  }
  else {
      return fib(n - 1) + fib(n - 2);
  }
}

function lucas(n) {
  if (n < 2) {
      return 2-n;
  }
  else {
      return lucas(n - 1) + lucas(n - 2);
  }
}
&#13;
<form name="f1" onsubmit="return false">
  First no.
  <input type="text" name="n1" value="3">
  <input type="submit" value="Fibonacci" onClick="myFunction()">
  <input type="submit" value="Lucas" onClick="myFunction(true)">
</form>
&#13;
&#13;
&#13;