程序:
#include<stdio.h>
double fact(int n); int main() {
int m,n;
int c;
scanf("%d%d",&m,&n);
c=(int)(fact(n)/(fact(m)*fact(n-m)));
printf("result = %d",c);
} double fact(int n) {
double p=1.0;
while(n) {
p *= n;
n--;
}
return p;
}
分析:
1、组合数一定是整数
2、阶乘函数应采用浮点数,若采用整型的话表示的数范围太小(int是16位,double是64位)