Problem1613end @ 2024-02-20 19:52:38
这样也水过了?
#include<bits/stdc++.h>
using namespace std;
long long j[11000000],jw;
long long min(long long qw,long long pe){
if(qw>pe) return qw;
else return pe;
}
int sr(int f){
int sw;
for(sw=min(jw,500);sw>=1;sw--){
j[sw]=j[sw]*f;
}
for(sw=1;sw<=min(jw,500);sw++){
if(j[sw]>=10){
j[sw+1]=j[sw+1]+j[sw]/10;
j[sw]=j[sw]%10;
}
}
if(jw>500) return 0;
while(1==1){
if(j[jw+1]>0){
jw++;
if(jw>500) return 0;
if(j[jw]>=10){
j[jw+1]=j[jw+1]+j[jw]/10;
j[jw]=j[jw]%10;
}
}
else{
break;
}
}
return 0;
}
int main(){
long long p,a;
cin>>p;
cout<<floor(log10(2)*p+1)<<endl;
jw=1;
j[1]=1;
for(a=p/16;a>=1;a--){
sr(65536);
}
for(a=(p%16)/8;a>=1;a--){
sr(256);
}
for(a=(p%8)/4;a>=1;a--){
sr(16);
}
for(a=(p%4)/2;a>=1;a--){
sr(4);
}
for(a=p%2;a>=1;a--){
sr(2);
}
j[1]--;
a=1;
while(1==1){
if(j[a]<0){
j[a]=j[a]+10;
j[a+1]--;
a++;
}
else{
break;
}
}
for(int c=0;c<10;c++){
for(int d=1;d<=50;d++){
cout<<j[500-c*50-d+1];
}
cout<<endl;
}
}