2013년 11월 7일 목요일

파스칼 삼각형 구하기

계수를 구하는 기본적인 내용으로 파스칼 삼각형을 구성해 보았습니다.
자바로 구현한 간단한 코드 예제 입니다.


private static List<Integer> getPascalTriangleRecursive(int nDegree,List<Integer> orgList) {
List<Integer> result = null;
if (orgList == null || nDegree < 0) {
return result;
}
int size = orgList.size();
result = new ArrayList<Integer>();
result.add(1);
for ( int i = 1; i < size; i++ ) {
result.add(orgList.get(i-1)+orgList.get(i));
}
result.add(1);
if ( size < nDegree ) {
return getPascalTriangleRecursive(nDegree,result);
} else {
return result;
}
}

public static List<Integer> getPascalTriangle(int nDegree) {
List<Integer> result = null;
if (nDegree < 0) {
return result;
}
result = new ArrayList<Integer>();
if ( nDegree < 2 ) {
for ( int i = 0; i <= nDegree; i++ ) {
result.add(1);
}
return result;
}
for ( int i = 0; i <= 1; i++ ) {
result.add(1);
}

return getPascalTriangleRecursive(nDegree,result);
}

아래는 출력 결과 입니다. 0 -> 9까지 10개 돌려 보았습니다.
---------- JAVA ----------
0 : [1]
1 : [1, 1]
2 : [1, 2, 1]
3 : [1, 3, 3, 1]
4 : [1, 4, 6, 4, 1]
5 : [1, 5, 10, 10, 5, 1]
6 : [1, 6, 15, 20, 15, 6, 1]
7 : [1, 7, 21, 35, 35, 21, 7, 1]
8 : [1, 8, 28, 56, 70, 56, 28, 8, 1]
9 : [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

출력 완료 (0초 경과) - 정상 종료

댓글 없음:

댓글 쓰기