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; }