Problem A 二进制
题目描述
32位二进制数X,对其进行X+1,X+3 操作,并输出。注意不能忽略前导0。(x<=232 -3)
输入
第一行,一个整数T,代表测试数据组数。
接着T行,输入32为二进制数
输出
对每组测试数据,输出两行,第一行为X+1,第二行为X+3.
测试样例
输入
2
00000000000000000000000000000000
00000000000000000000000000000001
输出
00000000000000000000000000000001
00000000000000000000000000000011
00000000000000000000000000000010
00000000000000000000000000000100
解答:
import java.util.Scanner;
/*
题目描述 32 位二进制数 X,对其进行 X+1,X+3 操作,并输出。注意不能忽略前导 0 x 范围不超过 2^32 -3
输入
第一行,一个整数 T,代表测试数据组数。
接着 T 行,输入 32 为二进制数
输出
对每组测试数据,输出两行,第一行为 X+1,第二行为 X+3.
测试样例 输入
2
00000000000000000000000000000000
00000000000000000000000000000001
输出
00000000000000000000000000000001
00000000000000000000000000000011
00000000000000000000000000000010
00000000000000000000000000000100
*/
public class Test{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
int n = scanner.nextInt();
for(int i = 0; i < n; i++) {
int x = scanner.nextInt();
int y = x + 1;
int z = x + 3;
String str1 = Integer.toBinaryString(y);
String str2 = Integer.toBinaryString(z);
StringBuffer strb1 = new StringBuffer(str1);
StringBuffer strb2 = new StringBuffer(str2);
for(int j = 0; j < 32; j++) {
if(strb1.length() < 32) strb1.insert(0, "0");
if(strb2.length() < 32) strb2.insert(0, "0");
}
System.out.println(strb1.toString());
System.out.println(strb2.toString());
}
}
}
}