数学 打了个表 找一下规律....
#include <cstdio> int a[30];
void init()
{
a[1]=2;a[2]=4;a[3]=8;a[4]=16;a[5]=32;a[6]=64;a[7]=128;a[8]=256;a[9]=512;a[10]=1024;a[11]=2048;a[12]=4096;a[13]=8192;a[14]=16384;a[15]=32768;a[16]=65536;a[17]=131072;a[18]=262144;a[19]=524288;
}
int main()
{
int n;
init();
while(scanf("%d",&n) && n)
{
if(n == 1)
{
puts("1");
continue;
}
for(int i = 1; i < 20; i++)
{
if(a[i] >= n)
{
printf("%d\n",a[i]-2*(a[i]-n));
break;
}
}
}
return 0;
}