正の整数「N」を指定します。すべての二項係数の中で最大の係数項を見つける必要があります。
二項係数シーケンスは nC0、nC1、nC2,…,nCr,…,nCn-2,n Cn-1、nCn
nCr の最大値を求めます。
<sub>n</sub>C<sub>r</sub> = n! / r! * (n - r)!
入力 - N=4
出力 - 最大係数 - 6
説明 - 4C0= 1、4C1 = 4、4C2 = 6 , 4C3 = 4, 4C4 = 1
したがって、この場合、最大の係数は次のようになります。 6.
入力 - N=5
出力 - 最大係数 - 10
説明 - 5C0= 1、5C1 = 5、5C2 =10、 5C3 = 10、5C4 = 5、5C5 = 1
したがって、この場合、最大係数は 10 です。
ユーザーから N の入力を取得します。
関数 maxCoeff(int n) は 1 つの引数 'n' を受け取り、C[n 1][n 1] でこれまでに見つかった最大の係数を返します。
min 変数と max 変数を 0 で初期化します。 'min' は C[][] 配列を反復処理するために使用され、'max' は見つかった最大係数値を格納するために使用されます。
0 から n までの i のループを使用して、C[][] 配列を初期化します。
次に、別のループで「i」または「n」の小さい方に移動します。
i==j の場合、C[i][j]==1。それ以外の場合、C[i][j] = C[i-1][j-1] C[i-1][j]。
次に、C[][] 全体を再度反復処理し、最大係数を max に保存します。
#include <stdio.h> int maxCoeff(int n){ int C[n+1][n+1]; int max=0,min=0; // Calculate value of Binomial Coefficient in for (int i = 0; i <= n; i++){ min=i<n?i:n; for (int j = 0; j <= min; j++){ if (j == 0 || j == i) C[i][j] = 1; else C[i][j] = C[i-1][j-1] + C[i-1][j]; } } for (int i = 0; i <= n; i++){ max = max> C[n][i] ? max: C[n][i]; } return max; } int main(){ int N = 3; printf("Maximum Coefficient :%d", maxCoeff(N) ); return 0; }出力上記のコードを実行すると、次の出力が生成されます -
リーリー
以上がC言語で二項係数の最大値はいくらですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。