转负二进制:
1 //POJ 3191 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 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 "); 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(" "); 26 } 27 }