c++计算组合数Cmn的值n=m=10。输入一行两个整数mn输出输出组合数
分析:组合数C(m,n)可以用递归公式C(m,n)=C(m-1,n-1)+C(m-1,n)计算,边界条件是当n=0或n=m时,C(m,n)为1。因为m和n都比较小,可以用递归的方式计算,也可以用循环的方式计算。
代码:(递归方式)
#include
int C(int m, int n) { if (n == 0 || n == m) { // 边界条件 return 1; } else { return C(m-1, n-1) + C(m-1, n); // 递归公式 } }
int main() { int m, n; cin >> m >> n; cout << C(m, n) << endl; return 0; }
代码:(循环方式)
#include
int main() { int m, n; cin >> m >> n; int c[11][11] = {0}; // 用数组存储中间结果 for (int i = 0; i <= m; i++) { c[i][0] = 1; c[i][i] = 1; } for (int i = 1; i <= m; i++) { for (int j = 1; j <= i-1 && j <= n; j++) { c[i][j] = c[i-1][j-1] + c[i-1][j]; } } cout << c[m][n] << endl; return 0;
原文地址: https://www.cveoy.top/t/topic/feeV 著作权归作者所有。请勿转载和采集!