【发布时间】:2019-09-29 01:59:01
【问题描述】:
我一直在做一个 fibo 函数来练习,突然我从输入字段中获得的 n 数总是乘以 10。所以如果我输入 1 将从 fibo 序列中计算 11 个数字,如果我输入 2 将做 21 个数字并且等等..有人发现错误在哪里吗?
function fibo(){
var n = document.getElementById("numb").value;
console.log(n);
var r=[];
var i;
if (isNaN(n) || n < 1 || n > 10) {
document.getElementById("ex1").innerHTML = "Input not valid";
} else {
for (i = 0; i < n + 1; i++) {
console.log(i);
console.log(r);
if (i == 0){
r[i] = i;
}
else if (i == 1){
r[i] = i;
}
else{
r[i] = r[i - 1] + r[i - 2];
}
}
document.getElementById("ex1").innerHTML = r.toString();
}
}
<!DOCTYPE html>
<html>
<body>
<h2>Fibonacci</h2>
<p>Please input a number between 1 and 10:</p>
<input id="numb">
<button type="button" onclick="fibo()">Calculate Fibo</button>
<p id="ex1"></p>
</body>
</html>
【问题讨论】:
-
代码在哪里?您很可能需要添加
n + Number(input.value)而不是n + input.value -
如果您没有发布代码,我们怎么可能发现您的代码中的错误?
-
请使用 Stack Overflow 的 tour 并阅读如何添加 required code。
-
为什么你认为2*10是21?看起来你正在将数字作为字符串添加到 1。所以我猜如果你输入 5,你最终会得到 51?!
-
有代码我忘了贴你们快!
标签: javascript arrays button input