![]() ![]() |
|
C趣味程序(二)(10)组合数 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 13:59:00 文章录入:杜斌 责任编辑:杜斌 | |
|
|
计算从m个元素中取n个元素的组合数C(m,n),其中m,n满足0<=n<=m。 计算公式如下: 按式(2)设计程序更为简结。 根据(1)式的程序设计 #include void g(double *p,int k); double p=0,c; void main() { int m,n,k; printf("输入 m,n = "); scanf("%d,%d",&m,&n); if(m else { k=m;g(&p,k);c=p; k=n;g(&p,k);c=c/p; k=m-n;g(&p,k);c=c/p; } printf("c( %d, %d )= %.f\n",m,n,c); } void g(double *p,int k) { int i; *p=1; for(i=1;i<=k;){*p=*p*i;i++;} } 运行结果如下: 输入 m,n= 20,5 C(20,5) = 15504 -------------------------- ![]() |
|
![]() ![]() |