标签:body details amp 面试题 方案 mat 解法 || 异或
三个boolean值至少两个为ture,则判为true。
这题是朋友问我的一个问题,网上查了下,发现是一道面试题。该题的解决方案有很多,我使用的方法如下表格所示。
首先求出 a 异或 b,然后发现,当 a \(\oplus\) b = 0 的时候,结果为 a 的值;当 a \(\oplus\) b = 1 的时候,结果为 c 的值。
a \(\oplus\) b | a | b | c | result |
---|---|---|---|---|
0 | \(\color{red}{\underline{1}}\) | 1 | 1 | 1 |
0 | \(\color{red}{\underline{1}}\) | 1 | 0 | 1 |
1 | 1 | 0 | \(\color{red}{\underline{1}}\) | 1 |
1 | 0 | 1 | \(\color{red}{\underline{1}}\) | 1 |
0 | \(\color{red}{\underline{0}}\) | 0 | 1 | 0 |
1 | 0 | 1 | \(\color{red}{\underline{0}}\) | 0 |
1 | 1 | 0 | \(\color{red}{\underline{0}}\) | 0 |
0 | \(\color{red}{\underline{0}}\) | 0 | 0 | 0 |
public boolean atLeastTwo(boolean a, boolean b, boolean c) {
return a ^ b ? c : a;
}
另外还有多种解法。
网上搜到的: https://blog.csdn.net/m0_38098232/article/details/73457120
解法1:
return a ? (b || c) : (b && c);
解法2:
return (a==b) ? a : c;
题目:三个boolean值至少两个为ture,则判为true
标签:body details amp 面试题 方案 mat 解法 || 异或
原文地址:https://www.cnblogs.com/iamxiaoye/p/12472174.html