资深光能
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>
using namespace std;
void cs(){
int n,m;
cin>>m>>n;
int x=m!/((m-n)!*n!);
cout<<x;
}
int main(){
cs();
return 0;
}
初级天翼
你这种方法不太好,还会出错,我的思路以及方法:
写一个阶乘的函数,算阶乘
将m的阶乘,n的阶乘以及m-n的阶乘赋值到3个不同的变量上
输出3个变量运算结果
代码如下:
阶乘函数:
定义+输入:
fm代表m的阶乘,fn代表n的阶乘,fmn代表m-n的阶乘
运算+输出:
王子健在2020-08-15 11:45:09追加了内容
100分的啊
中级天翼
资深光能
#include <iostream>
#include<cstdio>
#include <string>
#include<cmath>
using namespace std;
long long f(int t){
int sum=1;
for(int i=1;i<=t;i++)
sum*=i;
return sum;
}
int main(){
int m,n,fm,fn,fmn;
cin>>m>>n;
fm=f(m);
fn=f(n);
fmn=(m-n);
cout<<fm/(fmn*fn);
return 0;
}
30分@王子建