숫자 n이 있다고 가정합니다. 파스칼의 삼각형을 n줄까지 생성해야 합니다. 파스칼의 삼각형은 다음과 같을 것입니다 -
파스칼의 삼각형의 속성은 이전 행의 인접한 두 숫자의 합이 두 번째 행 바로 아래에 있는 숫자의 값입니다. 예를 들어, 6행의 처음 10은 5행의 4와 6의 합이고 두 번째 10은 5행의 두 숫자 6과 4의 합입니다.
따라서 입력이 n =5와 같으면 출력은
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 0 ~ n+1 범위의 i에 대해
- 0 ~ n-i 범위의 j에 대해
- 공백 하나 인쇄
- C :=1
- 1~i+1 범위의 j에 대해 다음을 수행합니다.
- C를 인쇄한 다음 공백 한 칸
- C :=(C *(i - j) / j)의 몫
- 다음 줄로 이동
- 0 ~ n-i 범위의 j에 대해
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(n): for i in range(n+1): for j in range(n-i): print(' ', end='') C = 1 for j in range(1, i+1): print(C, ' ', sep='', end='') C = C * (i - j) // j print() n = 5 solve(n)
입력
5
출력
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1