C中的最大二项式系数项值

我们给定一个正整数“ N”。我们必须在所有二项式系数中找到最大系数项。

二项式系数序列为n C 0n C 1n C 2,…。,n C r,…。,n C n-2n C n-1n C n

n C r的最大值。

nCr = n! / r! * (n - r)!

输入-N = 4

输出-最大系数-6

解释- 4 C ^ 0 = 1,4 c ^ 1 = 4,4 c ^ 2 = 6,4 C ^ 3 = 4,4 c ^ 4 = 1

因此,在这种情况下,最大系数为6。

输入-N = 5

输出-最大系数-10

解释- 5 C ^ 0 = 1,5 c ^ 1 = 5,5 c ^ 2 = 10,5 Ç 3 = 10,5 Ç 4 = 5,5 c ^ 5 = 1

因此,在这种情况下,最大系数为10。

以下程序中使用的方法如下

  • 我们从用户那里输入N。

  • 函数maxCoeff(int n)取一个参数'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
猜你喜欢