水题~~
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
输入一组正整数,每个正整数取值为【1,255】,你们懂得,刚好用8位二进制位可以表示。。。
你要做的就是:对于每个输入的正整数,如果她的二进制位有偶数个1,则该数满足要求,把符合要求的正整数的二进制位相加,并用二进制表示法输出。你知道规律吗?
-
输入
-
有多组测试数据。
每组测试数据第一行输入N,表示有N个正整数,N<=255
第二行输入N个正整数,每个正整数取值为[1~255]
输出
- 输出所有满足要求的正整数的二进制表示法的和 样例输入
-
5 1 2 3 4 5 7 1 2 3 4 5 6 7 2 1 2
样例输出
-
1000 1110 0
-
有多组测试数据。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int number = scanner.nextInt();
int sum = 0;
for (int i = 0; i < number; i++) {
int temp = scanner.nextInt();
String str = Integer.toBinaryString(temp);
int count = str.replace("0", "").length();
if (count % 2 == 0) {
sum += temp;
}
}
System.out.println(Integer.toBinaryString(sum));
}
}
}