1 条题解

  • 1
    @ 2026-8-29 20:57:00
    #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
    上传者