由高中所学知识得
#include<iostream>
using namespace std;
long jc(int n){
if(n==1||n==0) return 1;
return n*jc(n-1);
}
int main(){
long n,m,r;
cin>>n>>m;
r=jc(m+n)/(jc(n)*jc(m));
cout<<r<<endl;
return 0;
}
解释
#include<iostream> // 引入标准输入输出库,用于使用 cin 和 cout
using namespace std; // 使用标准命名空间,避免每次使用 std:: 前缀
// 定义一个计算阶乘的函数
long jc(int n) {
// 基础情况:n 为 0 或 1 时,阶乘为 1
if (n == 1 || n == 0) return 1;
// 递归情况:n! = n * (n-1)!
return n * jc(n - 1);
}
int main() {
long n, m, r; // 声明三个 long 类型的变量 n, m, r
// 输入两个整数 n 和 m
cin >> n >> m;
// 使用公式计算组合数 C(n+m, m) = (n+m)! / (n! * m!)
// jc(m+n) 计算 (m+n)!,jc(n) 计算 n!,jc(m) 计算 m!
r = jc(m + n) / (jc(n) * jc(m));
// 输出组合数的值
cout << r << endl; // 输出结果 r 并换行
return 0; // 返回 0,表示程序正常结束
}