#include <stdio.h>
#include <math.h>
using namespace std;
int k;
int two[16]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
unsigned int mason[127]={0,1};
void multiply()
{
int newk=(k>=15?15:k);
k-=newk;
for (int i=1;i<=125;i++)
{
mason[i]*=two[newk];
}
for (int i=1;i<=125;i++)
{
mason[i+1]+=mason[i]/10000;
mason[i]%=10000;
}
mason[126]=0;
}
int main()
{
scanf("%d",&k);
printf("%d",(int)(k*log10(2.0))+1);
while (k>0)
{
multiply();
}
mason[1]--;
char outp[500];
for (int i=125;i>0;i--)
{
outp[(125-i)*4]=mason[i]/1000+'0';
outp[(125-i)*4+1]=(mason[i]/100)%10+'0';
outp[(125-i)*4+2]=(mason[i]/10)%10+'0';
outp[(125-i)*4+3]=mason[i]%10+'0';
}
for (int i=0;i<500;i++)
{
if(i%50==0)printf("\n");
printf("%c",outp[i]);
}
printf("\n");
return 0;
}
#include <math.h>
using namespace std;
int k;
int two[16]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
unsigned int mason[127]={0,1};
void multiply()
{
int newk=(k>=15?15:k);
k-=newk;
for (int i=1;i<=125;i++)
{
mason[i]*=two[newk];
}
for (int i=1;i<=125;i++)
{
mason[i+1]+=mason[i]/10000;
mason[i]%=10000;
}
mason[126]=0;
}
int main()
{
scanf("%d",&k);
printf("%d",(int)(k*log10(2.0))+1);
while (k>0)
{
multiply();
}
mason[1]--;
char outp[500];
for (int i=125;i>0;i--)
{
outp[(125-i)*4]=mason[i]/1000+'0';
outp[(125-i)*4+1]=(mason[i]/100)%10+'0';
outp[(125-i)*4+2]=(mason[i]/10)%10+'0';
outp[(125-i)*4+3]=mason[i]%10+'0';
}
for (int i=0;i<500;i++)
{
if(i%50==0)printf("\n");
printf("%c",outp[i]);
}
printf("\n");
return 0;
}
浙公网安备 33010602011771号