组合 二项式定理
#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) 收藏 举报
浙公网安备 33010602011771号