题目就是要求-2进制。
有个博客写得挺好的。
http://www.cnblogs.com/scau20110726/archive/2012/12/21/2828420.html对于n=0时,特殊判断为0
#include <iostream>
#include <cstdio>
#include <cstring>
const int N = 105;
int n, arr[N];
int main() {
int t = 1, cas;
scanf("%d", &cas);
memset(arr, 0, sizeof(arr));
while (cas--) {
scanf("%d", &n);
printf("Case #%d: ", t++);
if (n == 0) {
printf("0\n");
continue;
}
int cnt = 0;
while (n) {
arr[cnt] = n % (-2);
n /= (-2);
if (arr[cnt] == -1) {
arr[cnt] = 1;
n++;
}
cnt++;
}
for (int i = cnt - 1; i >= 0; i--)
printf("%d", arr[i]);
printf("\n");
}
return 0;
}
307

被折叠的 条评论
为什么被折叠?



