1.题目: 哈密顿距离
两个整数的哈密顿距离定义为两个数二进制位的个数。给定两个32位整数,M,N,输出M和N的哈密顿距离。输入以空格切分。
2.样例输入:
3 4
3.样例输出:
3
解释:3的二进制为011, 4的二进制为100,不同位的个数为3
4.答案代码:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a,b,c,d = 1,ct = 0;
a = in.nextInt();
b = in.nextInt();
c = a ^ b;
for(int i = 1;i <= 32;i++) {
if((c & d) == 1)
ct++;
c >>>= 1;
}
System.out.println(ct);
}
}
5.提交状态: