Escreva um programa que leia um número inteiro positivo n e em seguida imprima n linhas do chamado Triangulo de Pascal:
1
1 1
121
1 3 3 1
14641
1 5 10 10 5 1

Passo 1

A gente precisa ler um inteiro positivo n e imprimir as primeiras n linhas do Triângulo de Pascal, onde cada linha i (contando de 0) tem os coeficientes binomiais binomi0, binomi1, dots, binomii. Esse exercício cai em combinatória e otimização de cálculo de coeficientes binomiais.

Passo 2

O Triângulo de Pascal é formado pelos coeficientes binomiais, que podem ser definidos pela fórmula em bloco:
binomnk = n!k!,(n-k)!
Mas usar fatoriais diretos fica caro. Uma forma mais eficiente é gerar cada linha iterativamente:
  • Começamos com C = 1 para k=0.
  • A cada novo k, atualizamos por
C C times n-kk+1
Isso evita overflow rápido e calcula cada coeficiente em tempo constante por elemento.

Passo 3

O algoritmo geral fica assim:
  1. Ler n.
  2. Para cada linha i de 0 até n-1:
    a) Inicializar C = 1.
    b) Para cada posição k de 0 até i:
    • Se k>0, imprimir um espaço antes de C.
    • Imprimir C.
    • Atualizar C = C times (i - k) / (k + 1).
      c) Após o laço de k, imprimir fim de linha.

Passo 4

Agora, implementamos o programa em C de acordo com esse algoritmo. Ele lê n de stdin e escreve no formato pedido sem espaço extra no final de cada linha.

Resposta

#include <stdio.h>
int main() {
int n;
if (scanf("%d", &n) != 1 || n <= 0) return 0;
for (int i = 0; i < n; i++) {
    long long C = 1;
    for (int k = 0; k <= i; k++) {
        if (k > 0) printf(" ");
        printf("%lld", C);
        C = C * (i - k) / (k + 1);
    }
    printf("\n");
}

return 0;
}

Exercícios relacionados