반응형
파스칼의 삼각형
Pascal's triangle
파스칼의 삼각형이란 고등학교 수학시간에 배우는 이항계수를 삼각형 모양으로 나열한 것이다.
위 두개의 수의 합이 아래의 수가 된다는 것이 특징.
전개과정은 다음과 같다.
1. b[k] = a[k - 1] + a[k], k는 1부터 시작. (b[1] = 1로 만들기 위해)
2. n번째 줄이라면 배열의 길이는 n. 길이가 줄어드는 경우는 없으니 배열 b를 배열 a로 복사한 뒤에는 배열b를 초기화 시킬 필요가 없음.
이번 코딩의 출력 결과는 다음과 같다.
왼쪽에 공백을 입력한 상태이다.
자릿수는 4.
코드는 다음과 같다.
#include<stdio.h>
#define MAX 100 //배열 크기 100
int main() {
int a[MAX] = { 0, };
int b[MAX] = { 0, };
int i, j, k, n;
printf("Enter : ");
scanf("%d", &n);
a[1] = 1; //1로 시작
if (n == 1) { //한 줄만 출력할 때
printf("%4d\n", a[1]);
}
else { //왼쪽 공백 때문에 두 줄 이상은 따로 코딩
for (i = 1; i <= n; i += 1) {
for (j = 1; j <= 2 * (n - i); j += 1) { //왼쪽 공백 입력
printf(" ");
}
if (i == 1) { //첫번째 줄 바로 출력
printf("%4d\n", a[1]);
}
else {
for (k = 1; k <= i; k += 1) {
b[k] = a[k - 1] + a[k];
printf("%4d", b[k]);
}
printf("\n"); //배열 복사
for (k = 1; k <= i; k += 1) {
a[k] = b[k];
}
}
}
}
return 0;
}
[Visual Studio Code 사용]
반응형
'Programming > C 언어' 카테고리의 다른 글
C언어 기초 2 - 출력하기 2 / 특수한 문자입력, 주석달기 (0) | 2018.05.25 |
---|---|
C언어 기초 1 - C언어 소개 및 출력하기 (0) | 2018.05.23 |
C언어 - 개미수열 (0) | 2017.09.18 |
C언어 - 마방진 (0) | 2017.09.07 |
C 언어 programming 예제 - 두번째 과제 (0) | 2017.08.22 |