Informática, perguntado por Usuário anônimo, 1 ano atrás

Escreva um programa em linguagem C que leia um número inteiro positivo N e em seguida imprima N linhas do chamado Triângulo de Pascal.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 5 10 1
...........................

Soluções para a tarefa

Respondido por KuroeJin
4
#include<stdio.h>
//Limpa o Buffer do teclado
#define FLUSHBUFFER while(getchar()!='\n');
//Função de entrada e garantia que o número de linhas seja positivo
int numero_de_linhas(void){
    int linhas=0;
    printf("Insira o numero de linhas: ");
    scanf("%d", &linhas);
    FLUSHBUFFER;
    if(linhas<1) return numero_de_linhas();
    return linhas; }
/*função que retorna fatorial, sendo 'aux' armazena o fatorial, 'limit' é o valor cessa o fatorial quando 'n' atinge o valor 'limit'*/
int fatorial(int aux, int n, int limit){
    if(n>limit) return fatorial(aux*n, n-1, limit);
    return aux;}
//retorna o valor binomial
int binomio_de_newton(int n, int p){
    int bnewton;
    bnewton = fatorial(1, n, p)/fatorial(1, n-p, 1);
    return bnewton;}
//imprime o triângulo de pascal
int triangulo_de_pascal(int n, int i, int j){
    if(i<n){
        if(j<=i){
            printf("%d ", binomio_de_newton(i, j));
            return triangulo_de_pascal(n, i, j+1); }
        printf("\n");
        return triangulo_de_pascal(n, i+1, j=0); }
    return 0;}

int main(void){
    int linhas;
    linhas = numero_de_linhas();
    triangulo_de_pascal(linhas, 0, 0);
    printf("\n");
    getchar();
    return 0; }
Perguntas interessantes