uva上面的题目就是不一样啊。。。
表扬一下“经典”。。。
代码如下:
1 #include <cstdio> 2 #include <cstring> 3 4 int a[100]; 5 int n; 6 void solve() 7 { 8 memset(a,0,sizeof(a)); 9 int len = 0; 10 while(n!=0) 11 { 12 a[len] = (n%2 + 2)%2;//这个取模的方法很有用 13 n = (n - a[len ++])/(-2); 14 } 15 if(len == 0) 16 { 17 printf("0\n"); 18 return; 19 } 20 while(len) 21 { 22 printf("%d",a[--len]); 23 } 24 25 printf("\n"); 26 } 27 28 int main() 29 { 30 int cas; 31 int count = 1; 32 scanf("%d",&cas); 33 while(cas --) 34 { 35 scanf("%d",&n); 36 printf("Case #%d: ",count ++); 37 solve(); 38 } 39 40 return 0; 41 }