1 条题解
-
1
#include <iostream> #include <vector> using namespace std; vector<int> mul(vector<int>& a, int b) { vector<int> c; long long carry = 0; for (int i = 0; i < a.size() || carry; i++) { if (i < a.size()) carry += (long long)a[i] * b; c.push_back(carry % 10); carry /= 10; } return c; } vector<int> div(vector<int>& a, int b) { vector<int> c(a.size(), 0); long long r = 0; for (int i = a.size() - 1; i >= 0; i--) { r = r * 10 + a[i]; c[i] = r / b; r %= b; } while (c.size() > 1 && c.back() == 0) c.pop_back(); return c; } int main() { int n; cin >> n; vector<int> result; result.push_back(1); for (int i = 1; i <= n; i++) { result = mul(result, n + i); result = div(result, i); } result = div(result, n + 1); for (int i = result.size() - 1; i >= 0; i--) { cout << result[i]; } cout << endl; return 0; }
- 1
信息
- ID
- 535
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 3
- 上传者