Problem E - Parity
Time Limit: 1 second
We define the parity of an integer n as the sum of the bits in binary representation computed modulo two. As an example, the number21 = 101012 has three 1s in its binary representation so it has parity 3 (mod 2), or 1.
In this problem you have to calculate the parity of an integer 1 ≤ I ≤ 2147483647.
Input
Each line of the input has an integer I and the end of the input is indicated by a line where I = 0 that should not be processed.Output
For each integer I in the inputt you should print a line The parity of B is P (mod 2)., where B is the binary representation of I.Sample Input
1 2 10 21 0
Sample Output
The parity of 1 is 1 (mod 2). The parity of 10 is 1 (mod 2). The parity of 1010 is 2 (mod 2). The parity of 10101 is 3 (mod 2).
大意:給N個數字 問每個數字轉成二進制後有幾個進位
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class UVA10931 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
while(true){
int num = 0;
try {
num = Integer.parseInt(in.readLine());
}
catch (NumberFormatException | IOException e) {
e.printStackTrace();
}
if(num==0)break;
String temp = Integer.toBinaryString(num);
int ans=0;
for(int i=0;i<temp.length();i++)
if(temp.charAt(i)=='1')
ans++;
System.out.println("The parity of "+temp+" is "+ans+" (mod 2).");
}
}
}
留言
張貼留言