求一道题, C++
负二进制:例如-13=(110111)负二进制1*(-2)^0+1*(-2)^1+1*(-2)^2+0*(-2)^3+1*(-2)^4+1*(-2)^5输入n,输出其对应...
负二进制:
例如
-13=(110111)负二进制
1*(-2)^0+1*(-2)^1+1*(-2)^2+0*(-2)^3+1*(-2)^4+1*(-2)^5
输入n,输出其对应的负二进制数 展开
例如
-13=(110111)负二进制
1*(-2)^0+1*(-2)^1+1*(-2)^2+0*(-2)^3+1*(-2)^4+1*(-2)^5
输入n,输出其对应的负二进制数 展开
1个回答
展开全部
#include<stdio.h>
#include<string.h>
int main()
{int i,j,n,a[40]={0};
scanf("%d",&n);
for(i=0;n;n/=-2)a[i++]=n%(-2);
for(j=0;j<i;j++)
if(a[j]<0){a[j]+=2;a[j+1]++;}
else if(a[j]>1){a[j]-=2;a[j+1]--;};
while(a[j]<0){a[j]+=2;a[++j]++;};
if(a[j]==0)j--;
for(i=j;i>=0;i--)printf("%d",a[i]);
printf("\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询