【题目】Problem A.二进制

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());
			}
		}
	}
}
发布了209 篇原创文章 · 获赞 230 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_44485744/article/details/104921908