编程求组合

#include <stdio.h>
#include 
<conio.h>
long fac(int);
long comb(int n,int m);
void main()
{
 
int n,m;
 
long result;
 clrscr();
 scanf(
"%d,%d",&n,&m);
 result
=comb(n,m);          /*调用组合函数*/
 printf(
"%ld",result);
}


long fac(int k)             /*定义阶乘的函数*/
{
 
long f=1;
 
for (int i=1;i<=k;i++)
   f
=f*i;
 
return f;
}


long comb(int n,int m)     /*定义组合函数*/
{
 
long c;
 c
=fac(m)/(fac(n)*fac(m-n));    /*嵌套调用阶乘函数*/
 
return c;
}


#include<stdio.h>
#include
<conio.h>
long int pq(long int n)
{
 
if(n==0||n==1)return 1;
 
else
  
return n*pq(n-1);
}

void main()
{
 
long int m,n;
 printf(
"Please input the value of m,n(m>=n>=0):");
 scanf(
"%ld,%ld",&m,&n);
 
if(m<n||m<0||n<0)
     printf(
"Error!\n");
 
else
     printf(
"The result is:%ld\n",pq(m)/pq(m-n)/pq(n));
}

posted @ 2007-01-14 09:38  齐心  Views(492)  Comments(0Edit  收藏  举报