算法:
int n,c = -1;
a[0] = 0;
while(n)
{
a[++c] = n%base; //base<0爲負進制
n/=base;
if(a[c]<0)
{
a[c]+=base;
n++;
}
}
while(c>0)
printf("%d",a[c--]);
printf("%d\n",a[0]);
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int a[110];
int main()
{
int n,T,cas = 1;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
int c = -1;
a[0] = 0;
while(n)
{
a[++c] = n%(-2);
n/=(-2);
if(a[c]<0)
{
a[c] += 2;
n++;
}
}
printf("Case #%d: ",cas++);
while(c>0)
printf("%d",a[c--]);
printf("%d\n",a[0]);
}
return 0;
}