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
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; }
//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
Matemática,
7 meses atrás
Geografia,
7 meses atrás
História,
7 meses atrás
Química,
1 ano atrás
Lógica,
1 ano atrás
Física,
1 ano atrás
Matemática,
1 ano atrás
Biologia,
1 ano atrás