~cpp
#include <stdio.h>
#define MAX 10
void main()
{
int colum, row; // 행과 열
int i,j; // ì¹´ìš´í„°
int array[MAX][MAX]; // ë°°ì—´
scanf("%d %d",&colum,&row);
for ( i=1;i<=colum;i++ ) {
for ( j=1;j<=i;j++) {
if ( j==1 || j==i ) {
array[i-1][j-1] = 1;
printf("%d ", array[i-1][j-1]);
}
else {
array[i-1][j-1] = array[i-2][j-2]+array[i-2][j-1];
printf("%d ", array[i-1][j-1]);
}
}
puts("");
}
printf("%d\n", array[colum-1][row-1]);
}
~cpp def getrow(index): r = 1 i = 0 while (i<index): for j in range(r): i+=1 if i>index: break r+=1 return r def getcol(index): first = 0 for i in range(getrow(index)): first += i return index - first + 1 def getindex(row, col): first = 0 for i in range(row): first += i return first + col - 1 def pascal(maxrow): arr = [ 0 for x in range(maxrow) for y in range(x+1) ] for i in range(len(arr)): if ( getcol(i)==1 ): arr[i] = 1 elif ( getcol(i)==getrow(i) ): arr[i] = 1 else: a = arr[getindex(getrow(i)-1,getcol(i)-1)] b = arr[getindex(getrow(i)-1,getcol(i))] arr[i] = a+b stair = 1 print ' '*(maxrow-stair), for i in range(len(arr)): print arr[i], if ( getcol(i)==getrow(i) ): stair+=1; print ''; print ' '*(maxrow-stair), import sys pascal(int(sys.argv[1:][0]))
최소 배열로 ë§Œë“ ì‚¼ê°�형입니다. 어떤분ì�´ ì „í™”ë¡œ 질문 하셔서 ëª¨ë¥´ê² ë‹¤ê³ í–ˆëŠ”ë�°, ì™„ì„±í•´ë²„ë ¸ìŠµë‹ˆë‹¤. 필요한 배열공간ì�€ 시그마n ì�´ ë�˜ëŠ”êµ°ìš”. 비쥬얼 스튜디오가 없어서 파ì�´ì�¬ìœ¼ë¡œ 만들어봤습니다.(코드가 ìƒ�당히 ì§€ì €ë¶„í•˜ë„¤ìš”-_-) 파ì�´ì�¬ì�„ ê¹”ê³ pascal.py로 ì €ìž¥í•œ 다ì�Œì—� ëª…ë ¹ì½˜ì†”ì°½ì—�서 "pascal.py 10"ì�´ëŸ°ì‹�으로 사용.










