HM021 真假取反

HM021 真假取反

HM021 真假取反

来源: 第 21 集 运算符-逻辑运算符-非

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

逻辑运算符一共三种:非 !、与 &&、或 ||。本问题只处理**逻辑非**。

! 是一个叹号,作用是取反:表达式为真则变成假,为假则变成真。六个字记:**真变假,假变真**。

在 C++ 里,**只要不是 \(0\) 都当作真**,\(0\) 当作假。因此对整数 \(10\) 取反:\(10\) 是真,!10 得到假,输出 \(0\)。再取一次反:!!10 负负得正,又变回真,习惯上用 \(1\) 表示真。

对每个整数 \(x\),请同时输出一次取反和两次取反的结果。

输入格式

第一行一个整数 \(n\)(\(1 \le n \le 100\))。

接下来一行 \(n\) 个整数 \(x_i\)(\(-10^9 \le x_i \le 10^9\))。

输出格式

\(n\) 行,每行两个整数,用一个空格隔开:!x 的值,以及 !!x 的值。每个值只能是 \(0\) 或 \(1\)。

样例

输入 #1

3
10 0 -3

输出 #1

0 1
1 0
0 1

输入 #2

2
1 2

输出 #2

0 1
0 1

说明

\(0\) 为假,!0 为真(输出 \(1\)),!!0 又变回假(输出 \(0\))。非零整数不论正负都是真。两次取反在结果上会变回「是不是非零」,一般不必连写两个叹号。

信息

ID
1020
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者