C程序解释中的二项式系数

里克

因此,我必须编写一个程序,打印出11个10阶二项式系数。我遇到了满足我需要的代码,但是我试图理解它为什么起作用。

    #include<stdio.h>

int binomialCoeff(int n, int k)
{
    if(k == 0)return 1;
    if(n <= k) return 0;

    return (n*binomialCoeff(n-1,k-1))/k;
}

int main()
{
    int k;
    for(k=10;k>=0;k-=1)
    {
          printf("%d\n", binomialCoeff(10, k));
    }

我知道为什么int主体起作用了,我只是不知道如何进行二项式Coeff计算。我对所有这些编码东西都比较陌生,因此感谢您的帮助!

薄饼

这实际上非常优雅。

该函数binomialCoeff是具有2个基本条件的递归函数。如果是k == 0,您只返回1如果n<=k返回0。因此,如果非为true,则通过从n和中减去1来调用相同的函数k这重复导致

n *(二项式Coeff(n-1,k-1))/ k

假设N为10,K为7

你得到

 10*(binomialCoeff(9,6)/7)

为了简单binomialCoeff起见,让第一次调用称为res1。这简化了事情:

10*(res1/6)

res1本身呼唤binomialCoeff

导致

 9*(binomialCoeff(8,5)/6)

我们可以称之为 res2

所以我们得到

10*(res2/6)

依此类推,直到满足基本条件为止;导致一系列n的相乘在一起。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算C中的二项式系数

来自分类Dev

计算C中的二项式系数

来自分类Dev

C ++二项式系数太慢

来自分类Dev

Haskell中的尾递归二项式系数函数

来自分类Dev

C ++对二项式系数递归函数的误解

来自分类Dev

C ++对二项式系数递归函数的误解

来自分类Dev

扭曲的二项式系数

来自分类Dev

涉及二项式系数的记忆

来自分类Dev

Python二项式系数

来自分类Dev

简化二项式系数计算

来自分类Dev

更多二项式系数和FORTRAN 95

来自分类Dev

了解查找二项式系数的递归方法

来自分类Dev

查找二项式系数除数的智能算法

来自分类Dev

求二项式系数的欧拉函数

来自分类Dev

计算二项式系数的时间复杂度

来自分类Dev

计算Scala中大n的二项式系数

来自分类Dev

具有大二项式系数的图函数

来自分类Dev

更多二项式系数和FORTRAN 95

来自分类Dev

在C ++中计算二项式系数模块素数p

来自分类Dev

R中的二项式分布

来自分类Dev

从在 Scala 中作为字符串输入的二项式表达式中提取系数

来自分类Dev

二项式系数函数的增长是阶乘还是多项式

来自分类Dev

求固定n模m的前r个二项式系数之和的算法

来自分类Dev

使用一维数组设计二项式系数算法

来自分类Dev

计算二项式系数的递归算法的时间复杂度

来自分类Dev

如何找到固定n的前r个二项式系数的总和?

来自分类Dev

如何通过质数求极大二项式系数?

来自分类Dev

求大n和k模m的二项式系数

来自分类Dev

使用帕斯卡三角形打印二项式系数