1 solutions

  • 2
    @ 2024-5-4 10:38:38
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int a[N],c[N];
    int main()
    {
        int n;
        cin>>n;
        a[0]=1;
        c[0]=1; 
        for(int i=1;i<=n;i++)
        {
            int t=0; //进位 
            for(int j=0;j<N;j++) //从低位到高位依次相加 c=a+a; 
            {
                c[j]=t+a[j]+a[j];
                t=c[j]/10; //处理进位 
                c[j]%=10;  //保留余数 
            }
            memcpy(a,c,sizeof c); //a=c; 
        }
        int lenc=N-1;  
        while(lenc>0&&c[lenc]==0) lenc--; //去除多余的前导0 
        for(int i=lenc;i>=0;i--)
        {
            cout<<c[i];
        }
        return 0;
    }
    
    • 1

    Information

    ID
    958
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    (None)
    # Submissions
    38
    Accepted
    13
    Uploaded By