求一道题, 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,输出其对应的负二进制数
展开
 我来答
听不清啊
高粉答主

2018-03-11 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.8亿
展开全部
#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;
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式