파스칼 삼각형을 출력하는 문제입니다. 이 문제도 왠지 재귀함수를 이용하여 풀면 좋을 것 같습니다.
다음과 같이 반복문을 활용하여 여러 숫자를 출력할 것인데요. 삼각형의 가장자리? 부분은 모두 1이기 때문에 i=1 or i=j 조건을 사용하여 1을 출력하여 줍니다. 그리고 배열을 선언하여 각 부분의 수들을 배열에 저장하여 아래로 내려갔을때 위의 수 두개를 합한것을 계산할 수 있도록 합니다. 코드는 다음과 같습니다.
#include <stdio.h>
int main(){
long long arr[100][100]; //배열 선언
int n;
scanf("%d",&n); //삼각형 층 입력
for(int i=1;i<=n;i++){ //가로줄
for(int j=1;j<=i;j++){ //세로줄
if(j==1 || j==i){ //1이 들어갈 자리(삼각형 가장자리)
arr[i][j]=1; // 배열에 1저장
printf("1 "); //1출력
}
else
{
arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; //위의 두개 수 합
printf("%lld ",arr[i][j]); //출력
}
}
printf("\n"); //줄바꿈
}
}
파스칼 삼각형의 형태를 재귀함수로 표현하였습니다.
글을 읽어 주셔서 감사합니다.
'AP 프로그래밍' 카테고리의 다른 글
16. codeup 4503 : 바이러스 문제 해결 (0) | 2023.07.16 |
---|---|
12. codeup 2601 : 피보나치 수열 문제 해결 (0) | 2023.06.05 |
9. codeup 2641 : 숏다리의 계단 오르기 (Small) 문제 해결 (0) | 2023.05.28 |
8. codeup 2608 : 동아리 회장 선거 문제 해결 (0) | 2023.05.28 |
5. codeup 2062 : Up 2 문제 해결 (0) | 2023.04.03 |