#include
int fact(int n);
int c(int m,int n);
/*主函数*/
main()
{
int m,n;
printf("please enter m,n m>n");
scanf("%d%d",&m,&n);
if (m>=n && n>=0)
printf("%d",c(m,n));
else
printf("wrong input!");
}
/*求阶乘*/
int fact(int n)
{
if (n==0)
return 1;
if (n==1)
return 1;
return n*fact(n-1);
}
/*求组合数*/
int c(int m,int n)
{
return fact(m)/(fact(m-n)*fact(n));
}
#include
int pq(int n)//计算n的阶乘
{
int temp=1;
while(n>=1)
{
temp=temp*n;
n--;
}
return temp;
}
void main()
{
int m,n;
printf("please input m:");
scanf("%d",&m);
printf("please input n:");
scanf("%d",&n);
if(m>=n&&n>=0)//判断输入格式,并进行计算
{
printf("m!/[(m-n)!n!]=%d\n",pq(m)/(pq(m-n)*pq(n)));
}
else//出错提示
{
printf("error input!\n");
}
}