华为OD机试-位运算

发布时间 2023-08-13 20:48:22作者: 手握钢叉的猹

 

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        Integer[] nums = new Integer[]{3, 5, 2, 8, 4};
        // 差异值 ---》异或运算 ^
        // 相似值 ---》与运算 &

        ArrayList<Integer[]> pairs = new ArrayList<>();
        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                pairs.add(new Integer[]{nums[i], nums[j]});
            }
        }

        System.out.println(pairs.stream().filter(integers -> (integers[0] ^ integers[1]) > (integers[0] & integers[1])).count());
    }
}