组合 二项式定理

#include <stdio.h>
#include
<string.h>
#include
<stdlib.h>

int c[1000];
int c1[100][100];

/* 排列与组合
c(n,k) = n ! / ( k! * (n - k)!)
*/

/*
1.求组合数
利用等式
2.利用杨辉三角
*/

/*
二项式定理
(a + b) ^n =
for k = 0 to n
c(n,k) = a ^(n - k) * b ^k;
*/

int main( )
{
int i, j, n;
while (scanf("%d", &n), n) {

memset(c,
0, sizeof(c));
c[
0] = 1;
//利用等式
for ( i = 1; i <= n; i++)
c[i]
= c[i-1] * ( n - i + 1) / i;
for ( i = 0; i <= n; i++)
printf(
"%d\n",c[i]);

/* 利用杨辉三角
for (i = 0; i <= n; i++)
{
c1[i][0] = 1;
for (j = 1; j <= n; j++)
c1[i][j] = c1[i-1][j] + c1[i-1][j-1];
}
for ( i = 0; i <= n; i++)
printf("%d\n",c1[n][i]);
*/
}
return 0;
}

posted on 2011-07-27 20:58  more think, more gains  阅读(203)  评论(0)    收藏  举报

导航