~cpp #include <stdio.h> void pascal_tri(int pascaltri[][100], int row); void main() { int pascaltri[100][100]; int row; printf("행을 입력 :"); scanf("%d", &row); pascal_tri(pascaltri, row); } void pascal_tri(int pascaltri[][100], int row) { int i,j; for(i = 0; i < row; i++) { pascaltri[i][0] = 1; pascaltri[i][i] = 1; } for(i = 2; i < row; i++) { for(j = 1; j < i; j++) { pascaltri[i][j] = pascaltri[i-1][j-1] + pascaltri[i-1][j]; } } for(i = 0; i < row; i++)// print { for(j = row; j > i; j--) { printf(" "); } for(j = 0; j <= i; j++) { printf("%d ", pascaltri[i][j]); } printf("n"); } }
~cpp #include <stdio.h> void pascal_tri(int pascaltri[][100], int row, int col); void main() { int pascaltri[100][100]; // 이 부분을 어떻게 더 효율적으로 바꿀 것인가..->ver.3 int row, col; while(1) { printf("찾고자 하는 열, 행을 차례로 입력 :"); scanf("%d %d", &col, &row); if(col >= row){ break; }else{ printf("다시 입력해 주세요...n"); } } pascal_tri(pascaltri, col, row); } void pascal_tri(int pascaltri[][100], int col, int row) { int i,j; for(i = 0; i < 100; i++) { pascaltri[i][0] = 1; pascaltri[i][i] = 1; } for(i = 2; i < 100; i++) { for(j = 1; j < i; j++) { pascaltri[i][j] = pascaltri[i-1][j-1] + pascaltri[i-1][j]; // 이 for 문들 역시 ver.3에서 더 나아져야 함. } } printf("%d열 %d행 = %dn", col, row, pascaltri[col-1][row-1]); }
~cpp #include <stdio.h> int pascal_tri(int row, int col); void main() { int row, col, result; while(1) { printf("찾고자 하는 열, 행을 차례로 입력 :"); scanf("%d %d", &col, &row); if(col >= row){ break; }else{ printf("다시 입력해 주세요...n"); } } result = pascal_tri(col, row); printf("%d열 %d행 = %dn", col, row, result); } int pascal_tri(int col, int row) { if(row == 1 || col == row){ return 1; }else{ return pascal_tri(col-1, row-1) + pascal_tri(col-1, row); } }