1 条题解

  • 0
    @ 2024-9-26 13:44:43
    #include<iostream>
    #include<vector>
    using namespace std;
    
    vector<int> mul(vector<int> &A,int b) 
    {
        vector<int> C;
        int t = 0;
        for (int i =0;i<A.size();i++)
        {
            t += A[i]*b;
            C.push_back(t%10);
            t /= 10;
        }
        while(t)
        {
            C.push_back(t%10);
            t /= 10;
        }
        return C;
    }
    vector<int> add(vector<int> &A,vector<int> &B) 
    {
        vector<int> C;
        int t = 0;
        if (A.size() < B.size()) return add(B,A);
        for (int i = 0;i<A.size();i++)
        {
            t += A[i] + B[i];
            C.push_back(t%10);
            t /= 10;
        }
        while (t)
        {
            C.push_back(t%10);
            t /= 10;
        }
        return C;
    }
    int main() 
    {
        int n;
        vector<int> B(1,1);
        cin >> n;
        for (int i = 1;i<=n;i++)
        {
            vector<int> A(1,1);
            for (int j =1;j<=i;j++)
            {
                A = mul(A,2);
            }
            B = add(B,A);
        }
        for (int i = B.size() - 1;i>= 0;i--) printf("%d",B[i]);
        return 0;
    }
    
    • 1

    信息

    ID
    33
    时间
    1000ms
    内存
    512MiB
    难度
    8
    标签
    递交数
    817
    已通过
    101
    上传者