题目大意:给你一个数N,要求你求出这个数的-2进制表达数
解题思路:仿照二进制的求法来求,那就是不断的%(-2),和/(-2),但是%(-2)的话,会出现-1的情况,这时候就把除得的商+1,就可以了
具体详解请看点击打开链接
#include<cstdio>
#include<cstring>
int main() {
int test , N, mark = 1;
int ans[100];
scanf("%d",&test);
while(test--) {
scanf("%d",&N);
int c = - 1;
ans[0] = 0;
while(N) {
ans[++c] = N % (-2);
N = N / (-2);
if(ans[c] == -1) {
ans[c] = -ans[c];
N++;
}
}
printf("Case #%d: ",mark++);
while(c > 0)
printf("%d",ans[c--]);
printf("%d",ans[0]);
printf("\n");
}
return 0;
}