JavaScript: почему-то мой var n из input умножается на 10, я понятия не имею, где это происходит - PullRequest
0 голосов
/ 29 сентября 2019

Я выполняю функцию Фибоначчи для практики, и внезапно я получаю n-число, полученное из поля ввода, всегда умноженное на 10. Так что, если я наберу 1, я вычислю 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> 

1 Ответ

0 голосов
/ 29 сентября 2019

Мне просто нужно было удалить «+1» в цикле for.В любом случае, спасибо.

function fibo(){
	var n = document.getElementById("numb").value;

	var r=[];
	var i;
	if (isNaN(n) || n < 1 || n > 10) {
    document.getElementById("ex1").innerHTML = "Input not valid";
    } else {
    	for (i = 0; i < n ; i++) {
    	
			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>

<script src="fibo.js"></script>

</body>
</html> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...