JavaScript斐波那契计算器:如何将答案输出到文本框中?

JavaScript斐波那契计算器:如何将答案输出到文本框中?,javascript,html,textbox,fibonacci,Javascript,Html,Textbox,Fibonacci,我目前正在尝试制作一个计算器,它接受一个数字输入(n),并显示第n个序列的斐波那契数。我是Javascript的初学者,似乎无法使我的代码正常工作: HTML: <head> <script src="calculator.js"></script> </head> <body> <input type="number" name="Input" value="" id="userInput" / > &

我目前正在尝试制作一个计算器,它接受一个数字输入(n),并显示第n个序列的斐波那契数。我是Javascript的初学者,似乎无法使我的代码正常工作:

HTML:
<head>
  <script src="calculator.js"></script>
</head>
<body>
    <input type="number" name="Input" value="" id="userInput" / >
    <input type="button" value="Go" onclick="calculate();" />
    <input type="number" name="Answer" id="userAnswer" />
</body>

JavaScript:

var input = document.getElementById("userInput");
var output = document.getElementById("userAnswer");
var answer;

function calculate(){
n = input.value;
if (n < 2){
  return 1;
} else {
  answer = calculate(n - 2) + calculate(n - 1);
  return answer;
}
output.value = answer;
}
HTML:
JavaScript:
var input=document.getElementById(“userInput”);
var输出=document.getElementById(“userAnswer”);
var回答;
函数计算(){
n=输入值;
if(n<2){
返回1;
}否则{
答案=计算(n-2)+计算(n-1);
返回答案;
}
输出值=答案;
}
不要太复杂!
函数计算(n){
if(n<2){
返回1;
}否则{
收益计算(n-2)+计算(n-1);
}
}



您在这里遇到了一些问题。首先,您使用参数递归调用
calculate()
,但函数定义不接受任何参数。另外,您将一个值分配给
output.value
,这是不可访问的代码。您有一个if/else,并且在这两个分支中都返回
。因此,您永远无法到达
输出。值=答案行。我还发现,将此脚本放入
,您在javascript中选择的元素还不存在。将
标记放在
内,最好放在
部分的末尾。这非常有用。我看到我将递归调用的函数与试图设置值混合在一起。谢谢你的帮助@如果我添加的输入有1000,那么它就会冻结。知道为什么它不能处理1000吗?@james可能是由于递归限制。然后你必须使用迭代方法而不是递归。明白了!谢谢@TRiNE