搜索
您的当前位置:首页正文

AcWing每日一题 3554.二进制(水题)

来源:赴品旅游

二进制

输入格式
第一行包含整数 T,表示共有 T 组测试数据。
每组数据占一行,包含一个长度为 32 的 01 字符串。

输出格式
每组数据输出两行,第一行为 n+1 的二进制表示结果,第二行为 n+3 的二进制表示结果。

输入样例:
2
00000000000000000000000000000000
00000000000000000000000000000001
输出样例:
00000000000000000000000000000001
00000000000000000000000000000011
00000000000000000000000000000010
00000000000000000000000000000100


水题,无需多言

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[40];
char inp[33]; 
int main(){
	scanf("%d\n",&n);
	while(n--){
		a[0]=0;//千万不要忘了初始化a[0],读入的时候不会覆盖
		for(int i=1;i<=32;++i)inp[i]=getchar(),a[i]=inp[i]-'0';
		getchar();
		a[32]+=1;
		for(int i=32;i>=1;--i)
			if(a[i]>=2)a[i-1]+=a[i]/2,a[i]=a[i]%2;
		if(a[0]!=0)printf("%d",a[0]);
		for(int i=1;i<=32;++i)printf("%d",a[i]);
		printf("\n");
		a[32]+=2;
		for(int i=32;i>=1;--i)
			if(a[i]>=2)a[i-1]+=a[i]/2,a[i]=a[i]%2;
		if(a[0]!=0)printf("%d",a[0]);
		for(int i=1;i<=32;++i)printf("%d",a[i]);
		printf("\n");
	}
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top