Найдите и исправьте ошибку в программе для нахождения факториала

Рейтинг: -1Ответов: 2Опубликовано: 22.06.2023

Всем привет, коллеги! У меня есть вот такая задачка, бьюсь над ней со вчерашнего дня, но никак не могу найти ошибку. Условие такое: Найдите и исправьте ошибку в программе для нахождения факториала.

И вот код

var counter = prompt("Введите число");
var factorial = 1;

document.write("Факториал числа: " + counter + "! = ");

do {

     if (counter == 0) {
                factorial = 1;
                break;
     }

     factorial = factorial / counter;
     counter = counter + 1;
}
while (counter > 0);

document.write(factorial);

В подсказках написано, что что-то не так с самой переменной factorial, но я ничего не вижу. Пробовала разные варианты, в том числе писать factorial = factorial * counter; вместо factorial = factorial / counter;, но нет, тут явно что-то другое. Речь идет о сайте, с автоматической проверкой задачек, поэтому думаю, что тут что-то небольшое надо исправить, и не нужно переписывать все полностью. Помогите пожалуйста!

Ответы

▲ 1Принят

Ребят, решение верное оказалось следующим:

    var counter = prompt("Enter the number");
    var factorial = 1;
    
    document.write("Factorial of a number: " + counter + "! = ");
    
    do {
        if (counter == 0) {
            factorial = 1;
            break;
        }
    
        factorial = factorial * counter;
        counter = counter - 1;
    } while (counter > 0);

document.write(factorial);

Решила поделиться. Всем спасибо!

▲ 0

Способ с циклом:

let counter = prompt("Введите число");
function factorial(n) {
    let result = 1;
    for (let i = 1; i <= n; i++) {
      result *= i;
    }
    console.log("Факториал числа: " + counter + "! = " + result);
}
factorial(counter)