Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 파스칼의 삼각형

<시간/>

파스칼의 삼각형은 이항 계수의 배열입니다. 맨 위 행은 n=0으로 번호가 매겨지고 각 행에는 왼쪽부터 k =0으로 번호가 매겨집니다. 각 숫자는 이전 행과 현재 셀의 정확히 맨 위에 있는 두 개의 숫자를 더하여 찾습니다. 또한 행 번호 n과 열 번호 k에 대해 (𝑛𝑘)를 찾아 구성됩니다.

입력이 10이라고 가정하면 출력은 다음과 같습니다. -

<예전> 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 280 36 84 126 126 84 36 9 1

이 문제를 해결하기 위해 다음 단계를 따릅니다.

  • i:=0 ~ n
    • j =0 ~ n – i – 2의 경우 검은색 공백을 인쇄합니다.
    • j :=0에서 i까지, nCr(i, j) 수행

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

예시(C++)

#include#include
네임스페이스 사용 std;long fact(long n){ int i, fact =1; for(i =n; i>1; i--) 사실 *=i; return fact;//주어진 수의 계승}long nCr(long n, long r){ long num =1, i; for(i =n; i>r; i--) 숫자 *=i; return long(num/fact(n-r));//nCr의 결과 생성}void genPascalsTriangle(long n){ for(int i =0; i> n; genPascalsTriangle(n);}

입력

10

출력

<예전> 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 280 36 84 126 126 84 36 9 1