4450: 【例20-8】求解组合数
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:11
解决:5
题目描述
输入n和m(均不大于21),设计程序输出C(n,m)
输入
n和m
输出
C(n,m)
样例输入 复制
3 1
样例输出 复制
3
提示
可以直接使用自定义函数求解:
#include<bits/stdc++.h>
using namespace std;
int n,m;
long long C[25][25];
long long fac(int n) { //求阶乘
long long f=1;
for (int i=n;i>0;i--) {
f*=i;
}
return f;
}
long long c(int n, int m) {
return fac(n)/(fac(n-m) *fac(m));
}
int main(){
cin>>n>>m;
cout<<c(n,m);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,m;
long long C[25][25];
int main(){
cin>>n>>m;
for(int i=0;i<=21;i++) {
C[i][0]=C[i][i]=1;
for(int j=1;j<i;j++)
C[i][j]=(C[i-1][j]+C[i-1][j-1]); //递推
}
/*
输出杨辉三角
for(int i=0;i<=21;i++) {
for(int j=0;j<=i;j++) {
cout<<C[i][j]<<' ';
}
cout<<endl;
}
*/
cout<<C[n][m];
return 0;
}