因为我是一个刚学完一点算法的蒟蒻
大佬请不要用特别高级的算法 thank you!
#include<bits/stdc++.h>
using namespace std;
int main(){
string s3="",sss3="1";
int n,ans=0;
scanf("%d",&n);
for(int i=1;i<=n;++i){
int car=0;
for(int j=0;j<sss3.size();++j){
int z=(sss3[j]-'0')*2+car;
if(z>=10) car=z/10,z%=10;
else car=0;
s3+=char(z+'0');
}
if(car!=0)s3+=char(car+'0');
sss3=s3,s3="";
}
cout<<sss3.size()<<endl;
sss3[0]=char(sss3[0]-1),sss3=sss3.substr(0,500);
reverse(sss3.begin(),sss3.end());
for(int i=1;i<=500;++i){
if(500-i>=sss3.size()){
if(i%50)printf("0");
else printf("0\n");
}
else{
if((ans+501-sss3.size())%50)printf("%c",sss3[ans]);
else printf("%c\n",sss3[ans]);
ans++;
}
}
return 0;
}
必回关!
thanks very much!