Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173614 | A班--林奕朗 | 组合数的高精度算法 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 505 | 2024-08-20 22:10:33 |
#include <iostream> #include <cmath> using namespace std; // 计算组合数 C(n, k) unsigned long long combination(int n, int k) { if (k>n-k) { k=n-k; // 因为 C(n, k) == C(n, n-k) } unsigned long long result = 1; for (int i=0;i<k;++i) { result=result*(n - i)/(i + 1); } return result; } int main() { int M, N; cin >> M >> N; unsigned long long result=combination(M + N - 2, M - 1); cout <<result<<endl; return 0; }