过样例了,0蛋

P1045 [NOIP2003 普及组] 麦森数

_Stay_ @ 2022-04-08 17:24:17

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[55500],jw;
int main()
{
    long long int b,p,s=1;
    cin>>b;
    a[1]=1;
    for(int i=1;i<=b;i++)
    {
        for(int j=1;j<=s;j++)
        {
            a[j]*=2;
        }
        for(int j=1;j<=s;j++)
        {
            if(a[j]>=10)
            {
                a[j+1]++;
                a[j]-=10;
                if(j==s)
                {
                    jw++;
                }
            }
        }
        if(jw==1)
        {
            s++;
            jw=0;
        }
        if(s>500)
        {
            for(int i=500;i<=s;i++)
            {
                a[i]=0;
            }
            s=500;
        }
    }
    int w=500;
    while(a[w]==0)
    {
        w--;
    }
    cout<<w<<endl;
    for(int i=500;i>=1;i--) cout<<a[i];
    return 0;
}

by lxc_awa @ 2022-04-15 19:46:33

一是最后还要减1 二是每50行换行


by lxc_awa @ 2022-04-15 19:47:01

@Stay


by lxc_awa @ 2022-04-15 19:59:10

而且会超时的要用快速幂,~因为我是个蒟蒻所以不会改。~


by _Stay_ @ 2022-04-17 08:29:12

@luxiaochi123 谢谢


by Margo416153 @ 2022-04-21 00:23:36

肯定得用快速幂的


|