📜  门| GATE 2017 MOCK II |第 49 题(1)

📅  最后修改于: 2023-12-03 14:58:17.577000             🧑  作者: Mango

题目介绍:门| GATE 2017 MOCK II |第 49 题

本题是GATE 2017 MOCK II的第49题。这是一道关于逻辑门实现的程序设计题。

题目描述

有一个电路需要用逻辑门实现。该电路有2个输入和1个输出,其逻辑门需要实现如下表所示的真值表:

| 输入1 | 输入2 | 输出 | | ----- | ----- | ---- | | 0 | 0 | 1 | | 0 | 1 | 0 | | 1 | 0 | 0 | | 1 | 1 | 1 |

实现该逻辑门的计算机程序的函数签名如下:

def gate(input1: int, input2: int) -> int:
    pass

输入参数input1input2分别表示输入1和输入2的值。返回的是逻辑门的输出值。

解题思路

观察真值表可以发现,只有在输入全为0或全为1时,才会输出1。因此,这个逻辑门可以通过两个输入分别取反,并将结果相乘来实现。即,只有当两个取反后的输入都是0时,输出才是1,否则输出为0。

Python 代码如下:

def gate(input1: int, input2: int) -> int:
    temp1 = int(not input1)
    temp2 = int(not input2)
    return temp1*temp2
讨论

这是一道比较简单的逻辑门实现题。只需要根据逻辑门的真值表,找到适合的逻辑运算即可。这道题的难度主要在于考察对逻辑运算的理解和编程能力。

补充

需要注意的是,由于输入参数是int类型,而not操作是布尔类型,因此需要将结果强制转换为int类型,否则会导致Type Error。