求助,样例也过不了。
┭┮﹏┭┮
#include<bits/stdc++.h>
#define longint long long
using namespace std;
int n;
longint a[1000],b[1000],s;
void change(longint a[],longint b[]){for(int i=0;i<=b[0];i++) a[i]=b[i];return;}
void multiplication(longint a[],longint b[]){
longint c[502]={0},d[502]={0};
for(int i=1;i<=b[0];i++){
for(int j=1;j<=a[0];j++) c[j]=b[i]*a[j];
for(int j=1;j<=a[0];j++) d[j+i-1]+=c[j];
}
int l=1;
while(l<=500&&(l<=a[0]+b[0]+1||d[l]!=0)){
d[l+1]+=d[l]/10;
d[l]%=10;
l++;
}
d[0]=l-3;
change(a,d);
return;
}
int main(){
int u;
scanf("%d",&n);
printf("%d",(int)(log10(2)*n+1));
a[0]=a[1]=1;
b[0]=1;b[1]=2;
while(n>0){
if(n&1) multiplication(a,b);
multiplication(b,b);
n/=2;
}
for(int i=500;i>1;i--){
if(i%50==0){
cout<<endl;
}
printf("%lld",a[i]);
}
printf("%lld",a[1]-1);
}