C中的最大二项式系数项值
我们给定一个正整数“N”。我们必须在所有二项式系数中找到最大系数项。
二项式系数序列为nC0,nC1,nC2,…。,nCr,…。,nCn-2,nCn-1,nCn
求nCr的最大值。
nCr = n! / r! * (n - r)!
输入-N=4
输出-最大系数-6
解释-4C^0=1,4c^1=4,4c^2=6,4C^3=4,4c^4=1
因此,在这种情况下,最大系数为6。
输入-N=5
输出-最大系数-10
解释-5C^0=1,5c^1=5,5c^2=10,5Ç3=10,5Ç4=5,5c^5=1
因此,在这种情况下,最大系数为10。
以下程序中使用的方法如下
我们从用户那里输入N。
函数maxCoeff(intn)取一个参数'n'并返回迄今为止存储在C[n+1][n+1]中的最大系数
用0初始化min和max变量。'min'用于遍历C[][]数组,而'max'用于存储找到的最大系数值。
从i=0到n的for循环用于初始化C[][]数组。
现在在另一个for循环遍历中,直到达到“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;
//的二项式系数的值
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;
}输出结果
如果我们运行上面的代码,它将生成以下输出-
Maximum Coefficient: 3