Monday 9 September 2019

java - boolean logic - comparing three booleans



I'm trying to construct a method to answer the below question. However I'm having a bit of trouble. Can someone assist me with this logic?



Write a static method odd() that takes three boolean inputs and returns true if an odd number of inputs are true, and false otherwise.




public boolean odd(boolean a, boolean b, boolean c)
{
if((a && b) && (b && c) && (a && c))
return true;
if((a && b) && (b && c) || (a && b) && (a && c))
return false;
return false;
}


Answer



I suggest you do something like



public boolean odd(boolean a, boolean b, boolean c) {
int count = 0;
if (a) count++;
if (b) count++;
if (c) count++;
return count % 2 != 0;
}



If you really want to optimize it, I think you want something like



if (a || b || c) {
if (a && b && c) return true;
if (a) return !(b && c);
if (b) return !c;
return c;
}

return false;

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...