2

为以下每个编写等效的 C++ 表达式,不使用任何一元否定运算符 (!)。(!= 仍然允许)

使用德摩根定律

  • !( P && Q) = !P || !Q
  • !( P || Q) = !P && !Q

为了

  1. !(x!=5 && x!=7)
  2. !(x<5 || x>=7)
  3. !( !(a>3 && b>4) && (c != 5))

我的回答:

  1. (x>5 || x<5) || (x>7 || x<7)
  2. x>=5 && x < 7
  3. (a>3 && b > 4) && (c!=5)

这些是正确的吗?如果没有,你能给我答案并解释为什么他们错了吗?

我是 C++ 的初学者,所以放轻松。

4

1 回答 1

1

看一下这个:

!(x!=5 && x!=7)                 -->    x==5 || x==7

!(x<5 || x>=7)                  -->    x>=5 && x<7

!( !(a>3 && b>4) && (c != 5))   -->    (a>3 && b>4) || c==5

因此,您的解决方案中只有 #2 是正确的。

于 2013-09-22T22:28:59.350 回答