杨辉三角的应用

#include <stdio.h>

int n,k,f[20][20]={0},a[20]={0},C;

int main() {

    for(int i=0;i<=14;i++)

    {        f[i][0]=1;

       for(int j=1;j<=i;j++) f[i][j]=f[i-1][j-1]+f[i-1][j];     }

    while(scanf("%d%d",&n,&k)==2)     {

       for(int i=1;i<=k;i++) scanf("%d",&a[i]);

       C=1;

       for(int i=1,j=n;i<=k;i++)

       {

          C*=f[j][a[i]];

          j-=a[i];

       }

       printf("%d\n",C);    

}     return 0;

}

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=13&problem=1046&mosmsg=Submission+received+with+ID+11324466

多项式(x1+x2+...+xk)n.

输入n和k(0<k,n<13),分别表示多项式次数和幂次方。第二行为k个非负整数n1,n2,...nk,满足n1+n2+...nk=n.

   输出多项式(x1+x2+...+xk)n展开后的(x1)^n1*(x2)^n2...(xn)^nk这一项的系数。

利用二项式顶理,它的另一种表现方式就是杨辉三角。

计算机描述二项式定理:C[i,j]=C[i-1,j-1]+C[i-1,j].

那么计算(x1)^n1*(x2)^n2...(xn)^nk就可以直接利用二项式定理。

posted @ 2013-02-28 19:05  L kill  阅读(771)  评论(0编辑  收藏  举报