Java逻辑测试问题

时间:2012-09-13 02:22:22

标签: java boolean-logic

我一直在解决有关AP计算机科学逻辑测试的一些问题,但我碰巧遇到了几个问题。

以下是网站上的说明:将以下每个英语语句翻译成可在if / else语句中使用的逻辑测试。为下面的每个语句编写适当的逻辑测试。假设已经声明了三个int变量x,y和z。

这是我遇到的两个问题:

x或y是偶数,另一个是奇数。

x和z的符号相反。

我一直试图找出这些答案几个小时,我仍然没有任何线索。如果有人能引导我朝着正确的方向前进,我将不胜感激。我知道这是“家庭作业”,但一些明确的帮助会非常有用。

6 个答案:

答案 0 :(得分:3)

对于第一个问题:x % 2 != y % 2 第二个问题:x * z < 0

答案 1 :(得分:2)

您需要使用and(&&)和or(||)来制作逻辑公式。我不打算做你的,但这是另一个:

  

x大于y和z,或者x小于y和z。

转换为:

((x > y) && (x > z)) || ((x < y) && (x < z))

你只需要找出奇数/偶数(提示 - 低位)和正/负(提示 - 与0比较)的公式,并将它们与和/或组合。

答案 2 :(得分:1)

对于第一个问题,如果x(或y) * 是奇数,则y(或x)必须是偶数,反之亦然。检查奇数值意味着x和2的模数是1 - 从那里,你必须断言y(或x)模2是否为0(检查均匀性)。

对于第二个问题,你需要遵循一系列逻辑:

  • X为正(或大于0),表示Z必须为负(或小于0)。
  • Z为正,这意味着X必须为负。

*:这是一个独家或 - 我的意思是你要么检查x或y,而不是同时检查两者。

答案 3 :(得分:1)

首先,您必须完全理解该声明,以便将其置于计算机的语言中。例如,

  

x和y具有相同的符号

这真正意味着:

  

x 大于或等于0 y 大于或等于0 < b>) x小于0 y小于0

现在很容易把它放到Java中:

(x >= 0 && y >= 0) || (x < 0 && y < 0)

当然,您的问题可以通过类似的方法解决。

答案 4 :(得分:1)

  

x或y是偶数,另一个是奇数。

奇数和偶数之和是奇数。两个奇数的和是偶数,两个偶数的和是偶数。

所以(x+y)%2!=0

  

x和z具有相反的符号

这个类似,你可以这样做:

x*z<0

因为0既不是消极的也不是正面的

  • neg * pos = neg
  • neg * neg = pos
  • pos * pos = pos

如果您想考虑0和负数的相反符号,可以使用(x >= 0) == (z < 0)

答案 5 :(得分:0)

无论如何,请用简单的英语。

If ((x is even AND y is odd) OR (x is odd AND y is even))

对于其他

If ((x gt or eq 0 AND y lt 0) OR (y gt or eq 0 AND x lt 0))

假设0为正。