本文已参与「新人创作礼」活动,一起开启掘金创作之路。
写代码中,经常用到判断逻辑的处理,处理判断逻辑处理时,经常反向去处理,比如为了把最常用的判断放到前面。
反向处理,直接用逻辑代数的反演示律,就非常的简单些,反演律是这样的:
也可以非常简单的证明一下,可以用最简单的证明方法,一个个的试,最喜欢这代码逻辑了,因为其非常的简单:
| 列名 | A | B | ¬(A+B) | ¬A¬B |
| 逻辑值 | 0 | 0 | 1 | 1 |
| 逻辑值 | 1 | 1 | 0 | 0 |
| 逻辑值 | 0 | 1 | 0 | 0 |
| 逻辑值 | 1 | 0 | 0 | 0 |
这就可以证明其正确性了
1 #include <stdio.h>
2
3 int main()
4 {
5 int a = 2;
6 int b = 1;
7 if(a == 0 || b == 0)
8 {
9 printf("a或者b等于0");
10 }
11 else
12 {
13 printf("条件1:a和都b不等于0\n");
14 }
15
16 if(a != 0 && b != 0)
17 {
18 printf("条件2:a和b不等于0\n");
19 }
20 }
root@mkx:~/learn/judge# ./test
条件1:a和都b不等于0
条件2:a和b不等于0
显然条件1与条件2是同样的关