Вывести треугольник Паскаля

Помогите правильно вывести треугольник Паскаля

Я вечером сяду разобраться с вопросом. А что ты уже пробовал, на каком этапе непонятки, покажи код и прогресс.

только что начал, пачти нечего ни делал, просто нехорошо понимаю как начать)

function pascal (){
let arr = [];
for(i=0; i<3;i++){
i = arr.push([1]);

}

pascal();

я недавно стал изучать javascript , пока нехорошо палучаеться))

Все там были. И сюрприз: когда начинаешь что-то изучать оно всегда не сразу получается. Только через практику и прикладывание усилий происходит улучшение. Мы тут это понимаем и не судим.

Алгоритм получения рядов треугольника понятен? Теперь задача смоделировать это решение в терминах джаваскрипта.

Кодируй треугольник как массив массивов. Чтобы такой вызов

createTriangle(4)

Возвращал такой результат (массив массивов чисел)

[[1],
 [1, 1],
 [1, 2, 1]
 [1, 3, 3, 1]]

задачу вывода результата будем потом решать отдельно

ладно ,спасибо очень Дмитрий

да алгоритм понимаю , просто в процессе затрудняюсь

форма решения будет выглядеть примерно так

результат объявить
цикл по количеству рядов {
	создать ряд
	ряд в результат
}
результат вернуть

На каждом этапе у тебя будут разные переменные (номер текущего ряда, номер текущего значения ряда, само значение, результат, и следовательно в результате можно найти предыдущий ряд) из которых ты сможешь вычислить то что от тебя требует алгритм (типа значение в предыдущем ряде с индексом +1)

попробую написать)) спасибо

Как альтернативное решение, можно было бы вычислять значение каждого очередного элемента по формуле, как описано здесь. В таком случае для решения задачи нужно написать функцию вычисляющую факториал, функцию для получения текущего элемента треугольника Паскаля, функцию для получения всего ряда треугольника Паскаля, функцию вычисляющую количества пробелов перед каждым рядом треугольника Паскаля и функцию вывода полностью треугольника Паскаля.

Вот код использующий этот подход:

function getSpaces(amount) {
    let spaces = '';
    for(let i = 0; i < amount; i++) {
        spaces += ' ';
    }
    return spaces;
}
function factorial(n) {
    if (n === 0) {
        return 1;
    } 
    let factorial = 1;
    for(let i = 0; i < n; i++) {
        factorial *= i + 1;
    }
    return factorial
}

function getPascalTriangleEl(n, m) {
    return factorial(n) / (factorial(m) * factorial(n - m))
}

function getPascalTriangleRow(rowNumber, spaceAmount) {
    let row = '';
    for(let i = 0; i <= rowNumber; i++) {
        row += getPascalTriangleEl(rowNumber, i);
        if (i < rowNumber) {
            row += ' ';
        }
    }
    return getSpaces(spaceAmount) + row;
}

function logPascalTriangle(lastRowNumber) {
    let leadingSpaceAmount = lastRowNumber;
    for(let i = 0; i <= lastRowNumber; i++) {
        console.log(getPascalTriangleRow(i, leadingSpaceAmount));
        leadingSpaceAmount--;
    }
}
1 лайк