题目大意:
输入一个数,输出它的负二进制
比如 -13 的负二进制数是 110111
从右到左 1*1+1*(-2)+1*4+0*(-8)+1*16+1*(-32)=-13
解题思路:
暴力模拟
源程序:
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,k,a[41];
int main()
{
//freopen("negii.in","r",stdin);
//freopen("negii.out","w",stdout);
scanf("%d",&n);
do
{
k++;
a[k]=abs(n%2);
n=-(int)(((double)(n-a[k]))/2.0);
}
while (n!=0);
for (int i=k;i>=1;i--)
printf("%d",a[i]);
}