具有四个操作数的布尔表达式

时间:2017-07-09 02:49:52

标签: boolean boolean-logic boolean-expression boolean-operations

如果且仅当四个操作数中有一个为真时,我怎么能写一个布尔表达式?我需要最简洁的方式来编写它。

1 个答案:

答案 0 :(得分:3)

以下是我的表现:

public class Program {

    public static void main(String[] args) {
        Program program = new Program();
        int[] a = { 1, 0, 0, 1, 0, 1 };
        int response = program.calculate(a);
        System.out.println(response);
    }

    int calculate(int[] input) {
        if(input == null || input.length == 0) {
            return -1;
        }
        int length = input.length;
        int result = 0;
        for (int i = 0; i < length - 1; i++) {
            if (input[i] == input[i + 1]) {
                result = result + 1;
            }
        }
        int temp = 0;
        for (int i = 0; i < length - 1; i++) {
            int count = 0;
            if (i > 0) {
                if (input[i - 1] != input[i]) {
                    count = count + 1;
                } else {
                    count = count - 1;
                }
            }

            if (i < length - 1) {
                if (input[i + 1] != input[i]) {
                    count = count + 1;
                } else {
                    count = count - 1;
                }
            }

            temp = Math.max(temp, count);
        }
        return result + temp;
    }
}

第一部分

((A XOR B) XOR (C XOR D)) AND (NOT (A AND B)) AND (NOT (C AND D))

适用于所有情况,除了三个输入为真,因此第二部分。