0 triângulo de Pascal é um arranjo de números da forma:
1
11
121
1331
14641
onde o elemento que aparece na linha I , coluna
é calculado por:
Dado um inteiro
, escrever um programa para produzir um triângulo de Pascal com N linhas.
programa deverá verificar a consistência do dado de entrada, isto é, se o valor fornecido pelo usuário é mesmo como o esperado.
1
11
121
1331
14641
Passo 1
Resumo do enunciado: queremos gerar o triângulo de Pascal com N linhas, onde cada elemento é dado pela combinação
. O programa também deve validar que o usuário informou um inteiro
. Conteúdo principal: laços de repetição e cálculo de combinação via fatorial.
Passo 2
Validar a entrada: ler o valor de N usando valor lido) e se
. Se der erro, imprimir mensagem de “Entrada inválida” e encerrar o programa.
Implementar a função de fatorial: criar até
. Usar um laço de
até
acumulando em uma variável do tipo
Implementar a função de combinação: criar usando a função de fatorial.
scanf
. Verificar se a leitura retornou sucesso (
Implementar a função de fatorial: criar
long factorial(int n)
que retorna o produto de
long
.Implementar a função de combinação: criar
long comb(int n, int k)
que retorna
Passo 3
Construir o triângulo de Pascal: no até
(linha atual) e o interno de
até
(coluna). Para cada posição, chamar
Juntar tudo em um programa em C: incluir
main
, após validar N, usar dois laços aninhados. O laço externo vai de
comb(i,j)
e imprimir o resultado seguido de espaço. Ao final de cada linha, imprimir quebra de linha.Juntar tudo em um programa em C: incluir
<stdio.h>
, implementar factorial
, comb
e main
conforme os passos anteriores.Resposta
#include <stdio.h>\n#include <stdlib.h>\n\nlong factorial(int n) {\n long f = 1;\n for(int i = 2; i <= n; i++)\n f *= i;\n return f;\n}\n\nlong comb(int n, int k) {\n return factorial(n) / (factorial(k) * factorial(n - k));\n}\n\nint main() {\n int N;\n printf(“Digite o número de linhas: “);\n if(scanf(”%d”, &N) != 1 || N < 1) {\n printf(“Entrada inválida\n”);\n return 1;\n }\n for(int i = 0; i < N; i++) {\n for(int j = 0; j <= i; j++) {\n printf("%ld “, comb(i, j));\n }\n printf(”\n");\n }\n return 0;\n}