Todos os desafios
Fácil 0 resolvidos 0% de aceitação

Triângulo de Pascal

Construa as linhas somando os elementos vizinhos da linha anterior.

A primeira linha é [1]. Cada linha seguinte começa e termina com 1. Todo elemento interno é a soma dos dois elementos imediatamente acima dele. Retorne as primeiras rows linhas, começando pelo único 1.

Implemente pascals_triangle(rows).

Entrada

rows: Quantas linhas gerar.

Saída

Retorne uma lista de linhas, começando do topo; cada linha é uma lista de inteiros.

Restrições

0 ≤ rows ≤ 60. Cada elemento cabe em um inteiro assinado de 64 bits. Zero linhas retorna uma lista vazia.

Exemplos

Exemplo 1
Entrada:
rows = 4

Saída esperada:
expected = [
    [1],
    [1, 1],
    [1, 2, 1],
    [1, 3, 3, 1]
]
Entrada:
long long rows = 4;

Saída esperada:
std::vector<std::vector<long long>> expected = {
    {1},
    {1, 1},
    {1, 2, 1},
    {1, 3, 3, 1}
};
Entrada:
long rows = 4;

Saída esperada:
long[][] expected = new long[][] {
    new long[] {1},
    new long[] {1, 1},
    new long[] {1, 2, 1},
    new long[] {1, 3, 3, 1}
};

Explicação

O 2 na linha 3 é 1 + 1. Os dois 3 internos na linha 4 são 1 + 2 e 2 + 1.

Exemplo 2
Entrada:
rows = 0

Saída esperada:
expected = []
Entrada:
long long rows = 0;

Saída esperada:
std::vector<std::vector<long long>> expected = {};
Entrada:
long rows = 0;

Saída esperada:
long[][] expected = new long[][] {};

Explicação

Nenhuma linha foi solicitada, então retorne uma lista vazia.

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.