题目
给定两个正整数 和 ,问把 变为 需要改变多少位?
也就是说,整数 和 的二进制表示中有多少位是不同的?
样例
输入:5 10
输出:4
解题
方法一:位运算
思路
求 中位 1 的个数。
代码
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
in.nextToken();
int a = (int) in.nval;
in.nextToken();
int b = (int) in.nval;
int cnt = 0;
for (int xor = a ^ b; xor != 0; xor &= (xor - 1)) ++cnt;
System.out.println(cnt);
}
}
评论区