demidovakatya / courses

:books: Files for online courses
46 stars 73 forks source link

Реализуйте метод, возвращающий true, если среди четырех его аргументов ровно два истинны #1

Open andrei-sapeshka opened 8 years ago

andrei-sapeshka commented 8 years ago

Может?

public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) {
    return ((a ^ b) & (c ^ d)) | ((a ^ c) & (b ^ d)) | ((a ^ d) & (b ^ c));
}
demidovakatya commented 8 years ago

кажется, у меня потом так в итоге и было 🤔

andrei-sapeshka commented 8 years ago

Нет, у Вас было так:

public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) {
    return (a & b & !c & !d) | (a & !b & c & !d) | (a & !b & !c & d) | (!a & b & c & !d) | (!a & b & !c & d) | (!a & !b & c & d);
}

Я же предлагаю:

public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) {
    return ((a ^ b) & (c ^ d)) | ((a ^ c) & (b ^ d)) | ((a ^ d) & (b ^ c));
}
demidovakatya commented 7 years ago

окей, спасибо, попробую :)

Nikasan commented 6 years ago

public static boolean booleanExpression(boolean a, boolean b, boolean c, boolean d) { return ((a ^ b) && (c ^ d)) || ((a ^ c) && (b ^ d)) || ((a ^ d) && (b ^ c)); } Better for performance using && and ||

Dmitriy-Kuznetsov1993 commented 4 years ago

@andrei-sapeshko, спс друг, ты очень мне помог!

oleksandr-kravchenko commented 2 years ago

return ((a ^ b) && (c ^ d)) || ((a ^ c) && (b ^ d));