题目已经暗示可以使用异或,那么我们就直接将m和n求异或,然后把结果转换成二进制,最后统计1的个数

这里需要注意的是,直接使用^符号,它是对十进制数操作的,如果你提前把十进制转换成二进制,那么这里就错了



import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int m=scanner.nextInt();
		int n=scanner.nextInt();
		int t=m^n;
		String string=Integer.toString(t,2);
		char c[]=string.toCharArray();
		int count=0;
		for (int i = 0; i < c.length; i++) {
			if(c[i]=='1')count++;
		}
		System.out.println(count);

	}

}