#include <stdio.h>
#include <string.h>
#include <cstdlib>
#define MAXN 10000
int main()
{
int a[MAXN],f=1,l=1,ti,tj;
unsigned int n;
bool printflag=false,zeroflag=false;
bool flag[MAXN];
memset(flag,false,sizeof(flag));
memset(a,-1,sizeof(a));
a[MAXN-1]=2;
scanf("%d",&n);
for(int i=1;i<n;i++)
{
if(i==1)
a[MAXN-1]=2;
else
a[MAXN-i]=0;
for(int j=1;j<=l;j++)
{
a[MAXN-j]*=2;
if (a[MAXN-j]>=10)
{
flag[MAXN-j-1]=true;
a[MAXN-j]-=10;
l++;
}
}
f++;
for(int j=1;j<=l;j++)
if (flag[MAXN-j])
{
a[MAXN-j]+=1;
flag[MAXN-j]=false;
}
}
for(int i=0;i<MAXN;i++)
{
if (a[i]==0)
{
ti=i;
printflag=true;
break;
}
}
if (printflag)
{
for(int j=ti;j<MAXN;j++)
{
if(a[j]!=0)
{
tj=j;
zeroflag=true;
break;
}
}
}
if (zeroflag)
{
for(int i=tj;i<MAXN;i++)
{
printf("%d",a[i]);
}
}
system("pause");
return 0;
}
评论10