0
已解决
王俊杰
高级光能
高级光能
3986 计算组合数C(m, n)
经验值:0
题目描述 Description
给定两个非负整数m和n,编写函数计算组合数C(m,n)的值。其中C(m,n)=m!/((m-n)!*n!)
n!指n的阶乘,n!=1*2*3*……*(n-2)*(n-1)*n
输入描述 Input Description
输入一行,两个数字,分别是m和n,数字之间用空格隔开
输出描述 Output Description
输出一行,一个数字
样例输入 Sample Input
3 2
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
0<=n<=m<=10
错误代码:
#include <iostream>
#include<cstdio>
#include <string>
#include<cmath>
using namespace std;
void cs(){
int n,m,s=0,x=1,v=0,c=1;
cin>>m>>n;
for(int i=1;i<=m;i++){
x=x*i;
s=s+x;
}//m的次方
for(int i=1;i<=n;i++){
c=c*i;
v=v+c;
}//n的次方
cout<<s/((s-v)*v);
}
int main(){
cs();
return 0;
}
C(m,n)=m!/((m-n)!*n!),中的 (m-n)!怎么写
???
0
已采纳
李瑞曦
高级天翼
高级天翼
函数部分:
long long s1=1,s2=1,s3=1,o=m-n,s4,s5;
for(int i=1;i<=m;i++)
s1*=i;
for(int i=1;i<=o;i++)
s2*=i;
for(int i=1;i<=n;i++)
s3*=i;
s4=s2*s3;
s5=s1/s4;
cout<<s5;
0
0