louzezhong20130517 @ 2023-09-17 20:39:09
#include<bits/stdc++.h>
using namespace std;
const long long N=1e5+100000-2;
long long a[N];
int main(){
int n,len=1,s,cnt=0;
cin>>n;
int i,j,k;
a[1]=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=len;j++)
{
a[j]*=2;
}
for(j=1;j<=len;j++)
{
s=0;
if(a[j]>9)
{
a[j+1]+=a[j]/10;
a[j]%=10;
s=max(s,j+1);
}
}
len=max(len,s);
}
for(i=len;i>=1;i--)
{
cnt++;
}
cout<<cnt<<endl;
for(i=500;i>=1;i--)
{
cout<<a[i];
if(i%50==0&&i!=500)
{
cout<<endl;
}
}
return 0;
}
by Smiog @ 2023-10-02 19:41:15
@louzezhong20130517 用快速幂
by xiaoshumiao @ 2023-10-04 19:10:46
这道题用普通高精是不行的。而且你忘了减1.