输入格式
第一行包含整数 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");
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容