<!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的新手,我一直在尝试构造一个代码来查找斐波那契序列的第N项,其中用户输入一个数字,该序列运行到第n个数字。为此,我的任务是同时使用函数和for循环。然而,当我运行它时,无论我输入什么数字,它都会返回1。我的问题是为什么会这样呢?我是一个学生,所以我只需要大致的方向,而不是答案。这段代码就是我到目前为止所拥有的。
发布于 2017-10-24 23:33:51
您需要使用像document.getElementById("n1").value这样的DOM函数来获取元素的值
另外,你的算法是错误的,它应该有a = 1;
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);
}<!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>
发布于 2017-10-24 23:38:48
您没有将文本输入值捕获为参数。
你有:
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)">
发布于 2017-10-24 23:51:50
你的作业已经差不多完成了。
您错过了接收函数定义中的值。
更改function chkInput(){ to function 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>
https://stackoverflow.com/questions/46914358
复制相似问题