why听取WA声一片(悬赏关注)

P1045 [NOIP2003 普及组] 麦森数

dhlsgjr @ 2024-10-20 18:05:36

#include<bits/stdc++.h>
using namespace std;
int n;
int x[2001]={0,2,},ans[2001]={0,1,};
void cheng(int a[],int b[],int d[]){
    int c[2001];
    memset(c,0,sizeof(c));
    for(int i=1;i<=500;i++)
    {
        for(int j=1;j<=500;j++)
        {
            c[i+j-1]+=a[i]*b[j];
            c[i+j]+=c[i+j-1]/10;
            c[i+j-1]%=10;
        }
    }
    for(int i=1;i<=500;i++){
        d[i]=c[i];
    }
}

int main()
{
cin>>n; 
while(n){
    if(n%2==1){
        cheng(ans,x,ans);
    }
    cheng(x,x,x);
    n/=2;
}
ans[1]--;
for(int i=1;i<=500;i++){
    if(ans[i]<0){
        ans[i+1]--;
        ans[i]+=10;
    }
}
for(int i=500;i>=1;i--){
    cout<<ans[i];
    if((i-1)%50==0) cout<<endl;
}
return 0;
}

实在没发现错哪了QAQ

求改


by zzy0510 @ 2024-10-20 18:06:57

前排


by zzy0510 @ 2024-10-20 18:07:12

qp


by dhlsgjr @ 2024-10-20 18:19:49

已发现问题(位数没输) 此贴结

证明


|