转负二进制:
1 //POJ 3191 2 #include3 #include 4 #include 5 using namespace std; 6 int ans[1000]; 7 int main() 8 { 9 int a;10 while(~scanf("%d",&a))11 {12 if(a==0)13 {14 printf("0\n");15 continue;16 }17 int cont=0;18 while(a)19 {20 ans[cont++]=abs(a%(-2));21 a-=abs(a%(-2));22 a/=(-2);23 }24 for(int i=cont-1;i>=0;i--)printf("%d",ans[i]);25 printf("\n");26 }27 }