Menu
CoddyTech

Pascal's Triangle

В треугольнике Паскаля первая строка — [1]. Каждая следующая строка на один элемент длиннее, начинается и заканчивается числом 1, а каждый элемент между ними равен сумме двух элементов непосредственно над ним. Тебе дано целое число numRows. Верни первые numRows строк треугольника, начиная с верхней строки; каждая строка должна быть массивом целых чисел.

Функция

generate(numRows: integer) → integer-2d-array
numRowsinteger
сколько строк треугольника нужно построить
Возвращаетinteger-2d-array
первые numRows строк, сначала верхняя строка

Ограничения

  • 1 ≤ numRows ≤ 30
  • Каждая запись в первых 30 строках помещается в 32-разрядное целое число со знаком. Наибольшее число — 77558760, оно находится посередине 30-й строки.

Примеры

Ввод
numRows = 5
Вывод
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
Пояснение
Каждая внутренняя запись складывает два числа над ней. Четвёртая строка: 3 = 1 + 2 и 3 = 2 + 1. Пятая строка: 4 = 1 + 3, 6 = 3 + 3, 4 = 3 + 1.
challenge icon

Дополнительный вопрос

Можешь оставить только один массив и обновлять его на месте, строка за строкой? В каком направлении должен выполняться внутренний цикл и почему?

Сбросить код
def generate(numRows):
    # Напишите код здесь

Тест #1

Тест #2

Аргумент

numRows = 5

Ожидаемый вывод

[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]