[伯俊]16395号パスカルさんかく


[伯俊]16395号帕斯卡尔先生kaku


1.質問


パスカルの三角形は、この係数を三角形に配列し、ブレス・パスカル(1623-1662)に基づいて命名された.
パスカルの三角形は、簡単な形で以下の方法で作成できます.
  • N行目にはN個の数がある.
  • の最初の行は1です.
  • の2行目から、各行の両端の値は1であり、その残りの値は上記行の隣接する2つの数の和である.
  • たとえば、n=3の場合、3行目の2番目の数字は、上の行の2つの隣接数(1と1)を加算して作成されます.
    n=6の場合、パスカル三角形の6行目の10に5行目の隣接する2つの数(4と6)を加えて求める.

    同様に、n=11の場合、以下のパスカル三角形を作成することができる.

    整数nとkが与えられた場合、パスカル三角形のn行目にk番目の数字を出力するプログラムを作成します.この場合、この数は二項係数C(n−1,k−1)であることに注意してください.

    2.入力


    第1行の整数nとkは、スペースを隔てて順次与えられる.このとき、1≦k≦n≦30を満たす.

    3.出力


    1行目はn行目のk個の数字を出力する.

    4.解答

  • はアレイに順番に入れて出力します.
  • の言うとおりにしました.
  • 5.コード

    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    int arr[31][31];
    
    int main() {
    	cin.tie(NULL);
    	ios_base::sync_with_stdio(false);
    
    	int n, k;
    	cin >> n >> k;
    
    	arr[0][0] = 1;
    	for (int i = 1; i < n; i++){
    		arr[i][0] = 1;
    		for (int j = 1; j < i; j++) {
    			arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
    		}
    		arr[i][i] = 1;
    	}
    	cout << arr[n - 1][k - 1];
    }