이항 계수 계산
이 단계에서는 파스칼 삼각형의 특정 행을 생성하기 위한 이항 계수를 계산하는 방법을 배웁니다. 이전 프로그램을 수정하여 함수를 사용하여 계수를 계산할 것입니다.
기존 파일을 엽니다.
cd ~/project
nano pascal_triangle.c
이전 코드를 다음 구현으로 바꿉니다.
#include <stdio.h>
// 이항 계수를 계산하는 함수
int binomialCoeff(int n, int k) {
// 기저 사례
if (k == 0 || k == n)
return 1;
// 파스칼 삼각형의 성질을 이용한 재귀 계산
return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k);
}
int main() {
int rowNumber;
printf("파스칼 삼각형의 행 번호를 입력하세요: ");
scanf("%d", &rowNumber);
printf("행 %d의 이항 계수:\n", rowNumber);
// 계수를 생성하고 출력
for (int k = 0; k < rowNumber; k++) {
printf("%d ", binomialCoeff(rowNumber - 1, k));
}
printf("\n");
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc pascal_triangle.c -o pascal_triangle
./pascal_triangle
예시 출력:
파스칼 삼각형의 행 번호를 입력하세요: 5
행 5의 이항 계수:
1 4 6 4 1
코드 설명:
binomialCoeff() 함수는 이항 계수를 재귀적으로 계산합니다.
- 기저 사례는 각 행의 첫 번째 및 마지막 요소를 처리합니다.
- 이 함수는 파스칼 삼각형의 재귀적 성질을 사용합니다.
- 중첩 루프는 지정된 행의 계수를 생성합니다.
핵심 내용:
- 이항 계수는 파스칼 삼각형의 각 행에 있는 숫자를 나타냅니다.
- 재귀 계산은 수학적 관계를 보여줍니다.
- 재귀적 접근 방식으로 인해 시간 복잡도는 지수적입니다.