IOI_AK_TLR @ 2023-07-08 10:14:30
提交记录 代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e7;
int p,len=1;
short a[MAXN]={0,1};
int main()
{
cin>>p;
for(int i=1;i<=p;i++)
{
int yu=0;
for(int j=1;j<=len;j++)
{
a[j]*=2;
a[j]+=yu;
yu=a[j]/10;
a[j]%=10;
}
if(yu)
{
a[++len]=yu;
}
}
cout<<len<<'\n';
a[1]-=1;
for(int i=500;i>=1;i--)
{
if(i<500&&i%50==0)
cout<<'\n';
if(i>len)
cout<<0;
else
cout<<a[i];
}
return 0;
}
by InversionShadow @ 2023-07-08 10:17:33
数组开大了
by lym12 @ 2023-07-08 10:22:52
开1e6可以的,但是会有5个点TLE,自己改改
改后代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e6;
int p,len=1;
short a[MAXN]={0,1};
int main()
{
cin>>p;
for(int i=1;i<=p;i++)
{
int yu=0;
for(int j=1;j<=len;j++)
{
a[j]*=2;
a[j]+=yu;
yu=a[j]/10;
a[j]%=10;
}
if(yu)
{
a[++len]=yu;
}
}
cout<<len<<'\n';
a[1]-=1;
for(int i=500;i>=1;i--)
{
if(i<500&&i%50==0)
cout<<'\n';
if(i>len)
cout<<0;
else
cout<<a[i];
}
return 0;
}
by IOI_AK_TLR @ 2023-07-16 06:29:45
@Mayile1022 OK我会了,感谢大佬!