`
方XiRui
  • 浏览: 20347 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

面试题:布尔变量

阅读更多

下面这篇文章是从StackOverflow来的。LZ面试的时候遇到了一道面试题:“如果有三个Bool型变量,请写出一程序得知其中有2个以上变量的值是true”,于是LZ做了下面的这样的程序:

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

 面试官接着问到,请对你的这个程序改进一下,但LZ不知道怎么改进,于是上StackOverflow上问了一下,下面是StackOverflow上的众网友的回答。再往下看的时候,希望你自己能先想一想怎么改进。

 

有人说,如果你有下面这样的代码?

if (someExpression) {
    return true;
} else {
    return false;
}

 你应该改成:

return someExpression;

 所以,LZ的代码应该写成:

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

 当然,解法不单单只有一种,还有下面的这些解决:

1)使用卡诺图

return a ? (b || c) : (b && c);

 2)使用异或

return a ^ b ? c : a;

 3)按照字面

return (a?1:0)+(b?1:0)+(c?1:0) >= 2;
// return a&&b || b&&c || a&&c;

 4)把Bool当成0和1

return a + b + c >= 2;
//return a&b | b&c | c&a;

 5)如果bool不能当成0和1,则:

int howManyBooleansAreTrue =
(a ? 1 : 0)
+ (b ? 1 : 0)
+ (c ? 1 : 0);
 
return howManyBooleansAreTrue >= 2;

 欢迎你留下你的想法。

 

 资料来源:http://coolshell.cn/articles/2514.html

分享到:
评论

相关推荐

    110道Python面试题:.pdf

    变量:在 Python 中,变量是指向对象的引用。Python 中有多种数据类型,包括整型、浮点型、字符串型、列表、元组、字典等。 数据类型:Python 中的数据类型可以分为两类:基本类型和复杂类型。基本类型包括整型、...

    Java面试题和练习题

    本文将基于标题“Java面试题和练习题”以及描述中提到的内容,深入探讨Java相关的面试题和练习题,旨在帮助求职者或希望提升技能的开发者巩固知识,准备面试。 一、Java基础 1. Java的数据类型:了解Java的八种...

    C++和C语言面试题

    #### 面试题1:变量的声明与定义的区别 在C++和C语言中,变量的声明与定义有着本质的区别。**定义**不仅告诉编译器变量的类型和名称,还会为该变量分配内存空间。这意味着,一个变量只能在程序中被定义一次,通常在...

    法国布尔面试题

    在IT领域,面试题往往能够反映出公司的技术要求和标准,特别是像法国布尔这样的知名公司。以下是对这些面试题的详细解答: 1. 当类A中的一个成员没有定义访问修饰符(public/private/protected)时,以下哪个方法...

    上海阿尔发信息技术公司面试题

    【上海阿尔发信息技术公司面试题】是一套针对Java程序员的面试题目,旨在考察应聘者的编程基础、Web开发技能以及数据库操作能力。以下是对各题目的详细解析: 第一题:ASP(Active Server Pages)中的VBScript数据...

    C++经典50大面试题

    #### 面试题1:变量的声明和定义有什么区别? 在C++中,变量的**声明**和**定义**有着明确的区别: - **定义**: 指为变量分配内存空间的过程,通常伴随着初始化。一个变量只能在一个地方被定义,否则会导致重复...

    71道经典Android面试题和答案

    - 布尔变量b在声明时未初始化,其值是不确定的。在Java中,布尔类型变量默认值是false,所以输出结果应该是false。 - 因此,程序段的输出结果是B(false)。 5. Activity生命周期函数保存数据: - 在Activity生命...

    java面试题总结资料

    1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),变量的声明与使用,以及运算符的优先级。同时,要熟悉流程控制语句,如if-else、switch-case、for、while等。 2. **类与对象**:掌握面向...

    50个C语言C常见面试题及答案

    ### 知识点二:布尔型、整型、浮点型和指针变量与零值比较的if语句 **概念解析**: - **布尔型**:比较是否等于`false`或`true`。 - **整型**:通常比较是否等于0。 - **浮点型**:由于浮点运算误差,建议使用一个...

    php经典面试题及答案非常实用,经常碰到这样的试题

    - `print_r`:用于调试,以易读的形式打印变量,尤其适用于数组和对象,返回布尔值,可用于判断是否成功输出。 面试题五:模板引擎 Smarty、PHPLib和SmartTemplate是常见的PHP模板引擎,它们将业务逻辑与视图层分离...

    Python经典面试题

    Python作为一门广泛应用于数据分析、机器学习、Web开发和人工智能的编程语言,其面试题涵盖了从基础知识到高级特性的方方面面。以下是一些根据标题和描述所提取的重要知识点: 1. **Python基础**: - 变量与数据...

    php mysql 面试题集锦

    ... - PHP语法:理解变量声明、数据类型(字符串、整型、浮点型、布尔型、数组、对象等)、...以上是基于"PHP mysql 面试题集锦"的主题,涵盖的常见知识点。理解和掌握这些内容将有助于应对PHP和MySQL相关的面试挑战。

    php面试题(普通PHP程序员笔试题,普通PHP程序员面试题)

    【PHP面试题】是针对普通PHP程序员的笔试与面试准备资料,旨在测试和提升候选人在PHP编程语言、Web开发以及相关技术领域的知识水平。以下是一些可能出现在面试中的关键知识点,涵盖基础到进阶,包括但不限于: 1. *...

    2020最新整理JavaOOP面试题108题,含答案

    Java OOP 面试题知识点总结 一、软件架构 * B/S 架构:浏览器/服务器程序 * C/S 架构:客户端/服务器,桌面应用程序 二、Java 开发平台 * JAVA SE:主要用在客户端开发 * JAVA EE:主要用在 web 应用程序开发 * ...

    程序员笔试面试题汇总 C语言

    本文将围绕“程序员笔试面试题汇总 C语言”这一主题,深入探讨C语言的相关知识点,以帮助准备嵌入式工程师职位的应聘者进行有效的复习。 一、C语言基础 1. 数据类型:C语言提供了多种数据类型,包括整型(int, ...

    2018最新python面试题

    2018年的Python面试题反映了当时Python在各种领域的广泛应用,包括Web开发、数据分析、机器学习等。以下将对一些常见的Python面试知识点进行详细解析: 1. **基础语法**: - 变量赋值:Python中变量无需声明类型,...

    JAVA面试题_适合刚毕业的童鞋

    ### JAVA面试题详解 #### 第一题:final、finally、finalize的区别 - **final**:在Java中,`final`关键字具有多种用途。当应用于类时,它表示该类不能被继承;应用于方法时,则表明该方法不能被重写;而应用于...

    2022最新java面试题大全

    Java 面试题大全 Java 是一种广泛使用的编程语言,本文总结了 Java 面试中常见的知识点,涵盖了 Java 基础、字符串操作、数据类型、运算符、抽象类等方面的知识。 Java 基础 1. JDK 和 JRE 的区别:JDK(Java ...

    python面试题汇总(

    在面试准备过程中,了解和掌握一些常见的Python面试题对于求职者来说至关重要。以下将详细解释上述文件中提到的Python知识点。 1. 利用Python的内置函数sum()可以非常简便地计算序列的总和。例如一行代码`sum(range...

Global site tag (gtag.js) - Google Analytics