输出二进制表示 (蓝桥杯算法提高)

输出二进制表示 (蓝桥杯算法提高)

题目传送门

题意:对n∈[-128,127]输出其二进制形式

思路1:分正负数数讨论模拟二进制(复杂代码)
思路2:按位与判断(简洁代码)

思路1代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,f,ans,i;
	while(cin>>n){
		i=f=ans=0;
		int num[10]={};
		char a[10]="";
		if(n<0) n=-n,f=1;
		while(n) a[i++]=n%2,n/=2;
		for(int i=7;i>=0;i--) ans=ans*10+a[i];
		sprintf(a,"%08d",ans);
		if(f){  a[0]='1';
				for(int i=1;i<8;i++) a[i]=='0'?a[i]='1':a[i]='0';
				for(int i=7,p=1;i>0;i--)
				 	if(p)
				 	if(a[i]=='0') a[i]='1',p=0;
				 	else a[i]='0';
			 }
		 	cout<<a<<endl;
		} 
}

思路2代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		for(int i=7,j=1<<7;i>=0;i--,j=1<<i)
				printf(j&n?"1":"0");
		puts("");
	}
	return 0;
} 
全部评论

相关推荐

点赞 评论 收藏
分享
LemontreeN:有的兄弟有的我今天一天面了五场,4个二面一个hr面
投递字节跳动等公司7个岗位
点赞 评论 收藏
分享
每晚夜里独自颤抖:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务