为何会RE

P1045 [NOIP2003 普及组] 麦森数

Llf0703 @ 2017-09-10 11:39:19

自测没有问题,其他网站也不会RE

#include<bits/stdc++.h>
using namespace std;
int p,a,b,c,d,weishu,jw;
int x[501],y[501],z[501];
int main()
{
    cin>>p;
    weishu=log10(2)*p+1;
    cout<<weishu<<endl;
    x[1]=1;
    y[1]=2;
    while (p!=0)
    {
        if (p%2!=0)
        {
            jw=0;
            for (a=1;a<=500;a++)
            {
                jw=0;
                for (b=1;b<=500;b++)
                {
                    z[a+b-1]=x[a]*y[b]+z[a+b-1]+jw;
                    jw=z[a+b-1]/10;
                    z[a+b-1]=z[a+b-1]%10;
                }
            } 
            for (a=1;a<=500;a++)
            {
                x[a]=z[a];
                z[a]=0;
            }
        }
        p=p/2;
        jw=0;
        for (a=1;a<=500;a++)
        {
            jw=0;
            for (b=1;b<=500;b++)
            {
                z[a+b-1]=y[a]*y[b]+z[a+b-1]+jw;
                jw=z[a+b-1]/10;
                z[a+b-1]=z[a+b-1]%10;
            }
        }
        for (a=1;a<=500;a++)
        {
            y[a]=z[a];
            z[a]=0;
        }
    }
    x[1]--;
    for (a=500;a>=1;a--)
    {
        c++;
        cout<<x[a];
        if (c==50)
        {
            cout<<endl;
            c=0;
        }
    }
    return 0;
} 

|