35 lines
605 B
C++
35 lines
605 B
C++
#include<iostream>
|
|
#include<cmath>
|
|
using namespace std;
|
|
int n,i,j,out[501],sta[1001];
|
|
|
|
void solve(int n)
|
|
{
|
|
if (n==0) return;
|
|
solve(n/2);
|
|
for (i=1;i<=500;i++)
|
|
for (j=1;j<=500;j++)
|
|
if (n%2==0) sta[i+j-1]+=out[i]*out[j];
|
|
else sta[i+j-1]+=out[i]*out[j]*2;
|
|
for (i=1;i<=500;i++)
|
|
{
|
|
out[i]=sta[i]%10;
|
|
sta[i+1]+=sta[i]/10;
|
|
}
|
|
for (i=1;i<=1000;i++) sta[i]=0;
|
|
}
|
|
int main()
|
|
{
|
|
cin>>n;
|
|
cout<<floor(log(2)/log(10)*n+1)<<endl;
|
|
out[1]=1;
|
|
solve(n);
|
|
for (i=500;i>=2;i--)
|
|
{
|
|
cout<<out[i];
|
|
if (i%50==1) cout<<endl;
|
|
}
|
|
cout<<out[1]-1<<endl;
|
|
return 0;
|
|
}
|
|
|