分析:组合数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 using namespace std;

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 using namespace std;

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;

c++计算组合数Cmn的值n=m=10。输入一行两个整数mn输出输出组合数

原文地址: https://www.cveoy.top/t/topic/feeV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录