Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

laurakormann

Duvida em linguagem C, pascal

Recommended Posts

Gente, estou com um problema, estou tentando gerar a pirâmide de Pascal, a questão é a seguinte:

O triangulo de Pascal é um quadro de forma triangular onde são dispostos, sucessivamente
e de cima para baixo, os chamados numeros combinatorios, ou seja, para
um triangulo de ordem n, temos:
􀀀0
0
􀀀1 1
0 1
􀀀2 2 2
0 1 2
􀀀3 3 3 3
0 1 2 3
onde
􀀀n
k = n!/k!(n 􀀀 k)!
Escreva um programa em C que imprima na tela um triangulo de Pascal de grau
n, onde n e um numero natural maior que zero denido pelo usuario.
Exemplo de saída:
digite um numero natural:
5
Triangulo de Pascal de ordem 5
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Eu implementei, ele chega a imprimir a pirâmide correta até a segunda linha, depois sai tudo errado, se alguém puder me ajudar!
#include<stdio.h>
#include<stdlib.h>
int main ()
{
int n, naux=0, kaux=0, i, j, f, g, h, fatNK=1, fatN=1, fatK=1, binomio;
printf("digite um numero natural maior que zero \n");
scanf("%d", &n);
for ( i=1; i<=n; i++) //Como se tivesse percorrendo uma linha.
{
//Calculo do fatorial de n, que será o mesmo enquanto estiver na mesma linha.
for(f=1; f<=i ; f++ )
{
fatN *= f;
naux++;
}
for(j=1; j<=i ; j++) //Como se tivesse percorrendo as colunas da linha.
{
//Calculo do fatorial de k.
for( g=1; g<=j ; g++ )
{
fatK *= g; //Faz o calculo do fatorial de K.
kaux++;
}
//Calculo do fatorial de n-k.
for( h=1; h<=naux - kaux ; h++ )
{
fatNK *= h; //Faz o calculo do fatorial de NK.
}
binomio=0;
binomio = fatN/( fatK * fatNK );
printf("%d", binomio);
}
printf("\n"); //Quando acabar de imprimir uma linha, dá enter para ir para a próxima.
}
system ("PAUSE");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.