11121
负进制转换,自己做不会做,以为按照正的一样,发现取模时候会出现负的余数,看别人代码才学会的,对于这种情况具体处理看代码
//============================================================================ // Name : 11121.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <cstdio> using namespace std; int N, n, num, T; int a[100]; int main() { scanf("%d", &N); T = 0; while(N--) { T++; printf("Case #%d: ", T); scanf("%d", &n); num = 0; while(n) { a[num] = n%(-2); n/=(-2); if(a[num] < 0) { a[num] -= (-2); n++; } num++; } a[num] = 0; while(a[num] == 0&&num) num--; if(num == 0&&a[num] == 0) printf("0\n"); else{ for(int i = num;i >= 0;i--){ printf("%d", a[i]); } printf("\n"); } } return 0; }