TLE+WA

P1045 [NOIP2003 普及组] 麦森数

大海中的孤帆 @ 2024-02-05 08:24:41

#include<bits/stdc++.h>
using namespace std;
int a[100000010];
int p;
int tot;
void add()
{
    for(int i=1;i<=tot;++i)
    {
        a[i]+=a[i];
    }
    for(int i=1;i<=tot;++i)
    {
        a[i+1]+=a[i]/10;
        a[i]%=10;
    }
    if(a[tot+1])
        tot++;
    return;
}
int main()
{
    cin>>p;
    a[1]=2;
    tot=1;
    for(int i=1;i<p;++i)
    {
        add();
    }
    cout<<tot<<endl;
    for(int i=500;i>=1;--i)
    {
        cout<<a[i];
    }
    return 0;
}

by DevilsFlame @ 2024-02-05 08:26:32

你答案-1了吗?


by DevilsFlame @ 2024-02-05 08:27:34

可以用快速幂和<<位移


|