Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C를 사용하여 파스칼 삼각형 형태로 정수를 인쇄하는 방법은 무엇입니까?

<시간/>

파스칼의 삼각형은 삼각형 형태의 정수 표현입니다. 그것의 유명한 표현 중 하나는 이항 방정식입니다. 이를 달성하기 위해 조합과 계승을 사용할 수 있습니다.

파스칼 삼각형 만들기

삼각형 외부의 모든 값은 영(0)으로 간주됩니다. 첫 번째 행은 0 1 0인 반면 파스칼의 삼각형에서는 1만 공간을 확보하고 0은 보이지 않습니다. 두 번째 행은 (0+1)과 (1+0)을 더하여 얻습니다. 출력은 두 개의 0 사이에 끼어 있습니다. 필요한 수준에 도달할 때까지 프로세스가 계속됩니다.

프로그래밍 방식으로 파스칼 삼각형은 선행 행에 인접한 요소를 추가하여 구성된 배열로 정의됩니다.

C를 사용하여 파스칼 삼각형 형태로 정수를 인쇄하는 방법은 무엇입니까?

프로그램 1

이 프로그램에서는 Using Array −

를 사용하여 Pascal Triangle 형식의 정수를 인쇄합니다.
#include <stdio.h>
int fact(int);
int main(){
   int i,rows,j;
   printf("enter no of rows :");
   scanf("%d",&rows);
   for (i = 0; i < rows; i++){
      for (j = 0; j <= (rows- i - 2); j++)
         printf(" ");
      for (j = 0 ; j <= i; j++)
         printf("%d ",fact(i)/(fact(j)*fact(i-j)));
      printf("\n");
   }
   return 0;
}
int fact(int n){
   int a;
   int sum = 1;
   for (a = 1; a <= n; a++)
      sum = sum*a;
   return sum;
}

출력

Enter no of rows :5
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1

프로그램 2

여기서는 배열을 사용하지 않고 Pascal Triangle 형식으로 정수를 인쇄하는 것을 볼 수 있습니다.

#include<stdio.h>
int main(){
   int num,row,i;
   printf("Enter the number of rows: ");
   scanf("%d",&num);
   for(row=1; row<=num; row++){
      int a=1;
      for(i=1; i<=row; i++){
         printf("%d ",a);
         a = a * (row-i)/i;
      }
      printf("\n");
   }
   return 0;
}

출력

Enter the number of rows: 6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1