@NikHaker
/

Построение треугольника Паскаля в таблице на Js — в чем ошибка?

В общем я задался целью сделать скрипт для генерирования треугольника паскаля указанной пользователем длины(количеством строк) и создания таблицы с этими числами. Считываю длину через prompt в главной html странице. Подскажите, где ошибся, ибо считается неправильно при любой длине.
function fact(n) { //возвращает n!
    if (n == 0)
        return 1;
    return (n != 1) ? n * fact(n - 1) : 1;
}

function C(k, n) { //возвращает значение элемента, где k- номер эл-та в строке, n - номер строки. рассчитывается по формуле сочетаний
    return fact(n)/(fact(k)*fact(n-k));
}

function BuildPT(size) {
    var w = size * 2 - 1, a1 = Math.ceil(w / 2), a2 = a1, b = false, j = 0, n=0;//w - количество столбцов, а1,а1 - границы треугольника, слева и справа соответственно
    document.write("<table width=750>");
    while (size) {
        document.write("<tr>");
        for (var i = 0; i < w; i++) {
            if (i < a1 || i > a2)
                document.write("<td></td>");//для того, чтобы ставить пустую ячейку, в случае если мы не в треугольнике
            else {
                b = !b;//для того, чтобы расставлять пустые ячейки между числами
                if (b == true) {
                    document.write("<td>" + C(j, n) + "</td>");
                    j++;
                }
                if (b == false) {
                    document.write("<td></td>");
                }
            }
            a1--;
            a2++;
        }
        j = 0;
        document.write("</tr>");
        n++;
        size--;
    }
    document.write("</table>")
}
  • Вопрос задан
  • 1461 просмотр
Решения вопроса 1
alsopub
@alsopub
Для начала замените n == 0 на n <= 0 в самом начале, так как вы местами передаете отрицательное число для вычисления факториала, а далее идет деление на ноль.
Возможно этого будет достаточно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы