Все задачи
Легко Решено: 0 Процент решений: 0%

Треугольник Паскаля

Строьте строки, складывая соседние элементы из предыдущей строки.

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

Реализуйте функцию pascals_triangle(rows).

Ввод

rows: Сколько строк нужно сгенерировать.

Вывод

Верните список строк, начиная с верхней; каждая строка — это список целых чисел.

Ограничения

0 ≤ rows ≤ 60. Каждый элемент помещается в знаковое 64-битное целое число. Если rows равно нулю, верните пустой список.

Примеры

Пример 1
Ввод:
rows = 4

Ожидаемый вывод:
expected = [
    [1],
    [1, 1],
    [1, 2, 1],
    [1, 3, 3, 1]
]
Ввод:
long long rows = 4;

Ожидаемый вывод:
std::vector<std::vector<long long>> expected = {
    {1},
    {1, 1},
    {1, 2, 1},
    {1, 3, 3, 1}
};
Ввод:
long rows = 4;

Ожидаемый вывод:
long[][] expected = new long[][] {
    new long[] {1},
    new long[] {1, 1},
    new long[] {1, 2, 1},
    new long[] {1, 3, 3, 1}
};

Пояснение

2 в третьей строке — это 1 + 1. Две внутренние тройки в четвёртой строке — это 1 + 2 и 2 + 1.

Пример 2
Ввод:
rows = 0

Ожидаемый вывод:
expected = []
Ввод:
long long rows = 0;

Ожидаемый вывод:
std::vector<std::vector<long long>> expected = {};
Ввод:
long rows = 0;

Ожидаемый вывод:
long[][] expected = new long[][] {};

Пояснение

Не запрошено ни одной строки, поэтому возвращается пустой список.

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.