Функция JS удваивается

#javascript

#javascript

Вопрос:

Я должен найти факториал числа, записанного во входных данных. У меня есть функция, но проблема в том, что сколько раз я нажимаю на кнопку, это будет * 2 число. Я не могу очистить значение ввода и .

Вот код.

Заранее благодарю вас!

 let sum = 1; 
function faktorial(){
    let faktorial1 =  inp1.value
    for(let i = 1; i < faktorial1; i  ){
        sum *=i 1
    }
    tpel.innerHTML =  sum
} 
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" name="" id="inp1">
    <!-- <input type="text" name="" id="inp2"> -->
    <br>
    <!-- <button onclick="show()">Print</button> -->
    <button onclick="faktorial()">Faktorial</button>
    <h1 id="tpel"></h1>

</body>
<script src="script.js"></script>
</html> 

Ответ №1:

Вам нужно снова установить sum значение 1, а также, если вам нужно удалить входное значение, вам нужно установить inp1.value значение "" . Проверьте приведенный ниже код.

 let sum = 1; 
function faktorial(){
    let faktorial1 =  inp1.value
    for(let i = 1; i < faktorial1; i  ){
        sum *=i 1
    }
    tpel.innerHTML =  sum
    sum = 1;
    inp1.value = "";
} 
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" name="" id="inp1">
    <!-- <input type="text" name="" id="inp2"> -->
    <br>
    <!-- <button onclick="show()">Print</button> -->
    <button onclick="faktorial()">Faktorial</button>
    <h1 id="tpel"></h1>

</body>

</html> 

Ответ №2:

 function faktorial(){
    let sum = 1; 
    let faktorial1 =  inp1.value
    for(let i = 1; i < faktorial1; i  ){
        sum *=i 1
    }
    
    tpel.innerHTML =  sum
    sum = null;
} 
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" name="" id="inp1">
    <!-- <input type="text" name="" id="inp2"> -->
    <br>
    <!-- <button onclick="show()">Print</button> -->
    <button onclick="faktorial()">Faktorial</button>
    <h1 id="tpel"></h1>

</body>
<script src="script.js"></script>
</html> 

Ответ №3:

Вычисление факториала числа является типичным вариантом использования рекурсивной функции

 function faktorial1() {
  tpel.innerText = faktorial(inp1.value);
}

function faktorial(x) {
  if (x == 0) {
    return 1;
  }
  return x * faktorial(x - 1);
} 
 <input type="text" name="" id="inp1">
<button onclick="faktorial1()">Faktorial</button>
<h1 id="tpel"></h1>