徐殿崴2011 @ 2022-08-18 22:48:55
#include <bits/stdc++.h>
using namespace std;
int p,rev[1100],f[1100],sav[1100];
void cheng1()
{
memset(sav,0,sizeof(sav));
for(int i = 1;i <= 500;i++)
{
for(int j= 1;j <= 500;j++)
{
sav[i+j-1]+=rev[i]*f[j];
sav[i+j]+=sav[i+j-1]/10;
sav[i+j-1]%=10;
}
}
memcpy(rev,sav,sizeof(rev));
}
void cheng2()
{
memset(sav,0,sizeof(sav));
for(int i = 1;i <= 500;i++)
{
for(int j= 1;j <= 500;j++)
{
sav[i+j-11]+=f[i]*f[j];
sav[i+j]+=sav[i+j-1]/10;
sav[i+j-1]%=10;
}
}
memcpy(f,sav,sizeof(f));
}
int main() {
cin>>p;
cout<<(int)(p*log10(2)+1);
rev[1]=1;
f[1] = 2;
while(p!=0)
{
if(p%2==1)
{
cheng1();
}
p/=2;
cheng2();
}
rev[1]--;
for(int i = 500;i >= 1;i--)
{
if(i%50==0) cout<<endl;
cout<<rev[i];
}
return 0;
}
大佬们看看有什么问题
by xlzy7777 @ 2023-01-04 23:09:08
你第一个需要换行吗?你if那里应该是i%50==0&&i!=500