SW Expert Academy
(SWEA c++)2005. 파스칼의 삼각형
naeunchan
2020. 9. 28. 15:09
728x90
반응형
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
2차원 배열을 이용하여 수를 채워나가도록 한다.
최대가 10이므로 arr[10][10]을 선언.
arr[0][0]은 1을 넣어주어 시작.
파스칼의 삼각형을 10단계가지 채워둔 후 원하는 단계만큼 출력해주면 시간을 줄일 수 있다.
이중 for문을 이용.
i = 단계, j = 각 단계에서의 위치를 나타낸다.
만약 j == 0 또는 j == i랑 같다면 각 단계에서 양 끝을 나타내므로 arr[i][j]에 1을 대입.
그 외에는 arr[i - 1][j - 1] + arr[i - 1][j]를 넣어주어 채워나가면 된다.
#include <iostream>
using namespace std;
int main(void)
{
int t;
int arr[10][10];
arr[0][0] = 1;
cin >> t;
for(int i = 1; i < 10; i++)
{
for(int j = 0; j <= i; j++)
{
if(j == 0 || j == i)
arr[i][j] = 1;
else
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
for(int i = 1; i < t; i++)
{
int n;
cin >> n;
cout << "#" << i << endl;
for(int j = 0; j < n; j++)
{
for(int k = 0; k <= j; k++)
cout << arr[j][k] << " ";
cout << endl;
}
}
return 0;
}
728x90
반응형