📜  门| Sudo GATE 2021 测验 |问题 22(1)

📅  最后修改于: 2023-12-03 15:28:47.380000             🧑  作者: Mango

门 | Sudo GATE 2021 测验 |问题 22

问题描述

有一个门,门有两个状态:开和关。门控制变量 door 有两个可能的值:1 表示门是开的,0 表示门是关的。门有两个相关事件:pushpull。两个变量 pushpull 表示当前门的事件。当 push=1 时表示门被推了一下,pull=1 时表示门被拉了一下。当门是开的时候推门把它关闭,当门是关的时候推门把它打开。拉门在门是关闭的时候打开门,在门是开的时候拉门把它关闭。如果同时发生了 pushpull 事件,门的状态仍然保持不变。请编写一个程序,接受 doorpushpull 这三个变量的值,然后计算门的新状态并将其输出到标准输出。门的新状态以 10 表示,1 表示门是开的,0 表示门是关的。

输入格式

输入的每行包含三个整数 doorpushpull

输出格式

输出门的新状态,1 表示门是开的,0 表示门是关的。

样例输入
0 1 0
样例输出
1
代码实现

门的状态转换和事件判断可以用简单的逻辑运算来完成。我们可以用一个 if-else 语句来实现这一逻辑:

door, push, pull = map(int, input().split())

if push == pull:
    print(door)
elif push == 1 and door == 0:
    print(1)
elif pull == 1 and door == 1:
    print(0)
else:
    print(door)

其中 map(int, input().split()) 用来将输入的三个整数读入到变量 doorpushpull 中。然后按照逻辑进行判断输出即可。

# 门 | Sudo GATE 2021 测验 |问题 22

## 问题描述

有一个门,门有两个状态:开和关。门控制变量 `door` 有两个可能的值:`1` 表示门是开的,`0` 表示门是关的。门有两个相关事件:`push` 和 `pull`。两个变量 `push` 和 `pull` 表示当前门的事件。当 `push=1` 时表示门被推了一下,`pull=1` 时表示门被拉了一下。当门是开的时候推门把它关闭,当门是关的时候推门把它打开。拉门在门是关闭的时候打开门,在门是开的时候拉门把它关闭。如果同时发生了 `push` 和 `pull` 事件,门的状态仍然保持不变。请编写一个程序,接受 `door`、`push` 和 `pull` 这三个变量的值,然后计算门的新状态并将其输出到标准输出。门的新状态以 `1` 或 `0` 表示,`1` 表示门是开的,`0` 表示门是关的。

## 输入格式

输入的每行包含三个整数 `door`、`push` 和 `pull`。

## 输出格式

输出门的新状态,`1` 表示门是开的,`0` 表示门是关的。

## 样例输入

0 1 0


## 样例输出

1


## 代码实现

门的状态转换和事件判断可以用简单的逻辑运算来完成。我们可以用一个 if-else 语句来实现这一逻辑:

```python
door, push, pull = map(int, input().split())

if push == pull:
    print(door)
elif push == 1 and door == 0:
    print(1)
elif pull == 1 and door == 1:
    print(0)
else:
    print(door)

其中 map(int, input().split()) 用来将输入的三个整数读入到变量 doorpushpull 中。然后按照逻辑进行判断输出即可。