计算错误WA
查看原帖
计算错误WA
1388282
ouyangdou楼主2024/10/1 21:30
#include<bits/stdc++.h>
using namespace std;
int a[500]={1},b[1005]={};
void sqr(){
    memset(b,0,sizeof(b));
    for(int i=0;i<=499;i++){
        for(int j=0;j<=499;j++){
            b[i+j]+=a[i]*a[j];
        }
    }
    for(int i=0;i<=499;i++){
        a[i]=b[i];
    }
    for(int i=1;i<=499;i++){
        a[i]+=a[i-1]/10;
        a[i-1]%=10;
    }
    a[499]%=10;
}
void multi(){
    for(int i=0;i<=499;i++){
        a[i]*=2;
    }
    for(int i=1;i<=499;i++){
        a[i]+=a[i-1]/10;
        a[i-1]%=10;
    }
    a[499]%=10;
}
int main(){
    int k[25]={},zz=0;
    int n;
    cin>>n;
    int m=n;
    while(n>0){
        zz++;
        k[zz]=n%2;
        n/=2;
    }
    for(int i=zz;i>=1;i--){
        sqr();
        if(k[zz])multi();
    }
    a[0]-=1;
    printf("%d",(int)floor(log10(2)*m)+1);
    for(int i=9;i>=0;i--){
        cout<<endl;
        for(int j=49;j>=0;j--){
            cout<<a[i*50+j];
        }
    }
    return 0;
}
2024/10/1 21:30
加载中...