{
for (long i = 1 num > 0 num--)
{
i *= num
}
}
int main()
{
long m
long n
long C
scanf("%ld %ld", &m, &n)
C = fact(n) / ((fact(m)) * fact(n-m))
printf("%ld",C)
return 0
}
C(5,3)=C(5,2)=5*4/2*1=20/2=10。一般上面的数字超过了下面的一半,先化简。比如:
C(10,7)=C(10,3)=10*9*8/3*2*1=720/6=120。
组合的定义:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。
计算公式:
扩展资料:排列、组合、二项式定理公式口诀:
加法乘法两原理,贯穿始终的法则。与序无关是组合,要求有序是排列。
两个公式两性质,两种思想和方法。归纳出排列组合,应用问题须转化。
排列组合在一起,先选后排是常理。特殊元素和位置,首先注意多考虑。
不重不漏多思考,捆绑插空是技巧。排列组合恒等式,定义证明建模试。
关于二项式定理,中国杨辉三角形。两条性质两公式,函数赋值变换式。
#include <stdio.h>void main()
{
void choose(int a,int b)
int a,b,c,d
printf("请输入两个整数,以0,0结束\n")
scanf("%d,%d",&a,&b)
scanf("%d,%d",&c,&d)
if(c==0&&d==0)
choose(a,b)
}
void choose(int a,int b)
{
if(b>a)
{
printf("error!")
}
else
{
int fenmu=b,fenzi=a
for(int i=a-1i>a-bi--)
fenzi*=i
for(int j=b-1j>1j--)
fenmu*=j
int temp
temp=fenzi/fenmu
printf("%d",temp)
}
}