论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

C趣味程序(二)(10)

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:44:30

2.4 组合数
    计算从m个元素中取n个元素的组合数C(m,n),其中m,n满足0<=n<=m。
计算公式如下:


按式(2)设计程序更为简结。

根据(1)式的程序设计
#include<stdio.h>
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<n) printf("m比n小,错误!");
    if(n==0||m==n) c=1;
    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

--------------------------

根据式(2)设计的程序
#include<stdio.h>
void main()
{
    int c=0,m,n,k;
    printf("输入m,n:= ");
    scanf("%d,%d",&m,&n);
    if(m<n)printf("输入错误,m不能小于n.\n");
    printf("c( %d, %d) = ",m,n);
    if(n==0||m==n) printf("end");
    if(n>m/2) n=m-n;
    c=1;
    for(k=1;k<=n;k++)
        c=c*(m-k+1)/k;
    printf("%d",c);
}
运行结果如下:
输入 m,n = 50,2
C(50,2) = 1225
上一篇:{实例}螺旋矩阵 人气:5530
下一篇:{实例}C趣味程序(二)(11) 人气:4444
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058