Shirlies
宁静专注认真的程序媛~

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 }

 

posted on 2012-04-14 15:20  Shirlies  阅读(183)  评论(0编辑  收藏  举报