卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章19780本站已运行344

在C语言中,二项式系数的最大项值是多少?

在C语言中,二项式系数的最大项值是多少?

给定一个正整数‘N’。我们需要找到所有二项式系数中的最大系数项。

二项式系数序列为nC0nC1nC2,…,nCr,…,nCn-2nCn-1nCn

找到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)接受一个参数'n',并返回到目前为止在C[n+1][n+1]中找到的最大系数。

  • 用0初始化min和max变量。'min'用于遍历C[][]数组,'max'用于存储找到的最大系数值。

  • 用i从0到n的循环用于初始化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;
}

输出

如果我们运行上面的代码,将会生成以下输出 −

'
Maximum Coefficient: 3
卓越飞翔博客
上一篇: PHP WebSocket开发:探索实现功能时的常见陷阱与解决方案
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏