if(year%400==0 || (year%100!=0 && year%4==0))
语句的格式为a or (b' and c)这是否简化为a or (b or c')?
a or (b' and c)
a or (b or c')
if(year%400==0 || (year%100==0 || year%4!=0))
这个简化有错误吗?(我以为是正确的,但这两个没有给予相同的结果。)
qnyhuwrf1#
这是否简化为a or ( b or c' )?不,你可以通过建立一个真值表来了解这一点。我们 * 可以 * 将and更改为or。
a or ( b or c' )
and
or
b' and c = ( b' and c )'' = ( b or c' )'
所以
a or ( b' and c )
变成
a or ( b or c' )'
没有用,除了显示它不等价于a or ( b or c' )。我们可以使用相同的方法将and更改为or。
( a' and ( b or c' ) )'
再说一遍,没用。它可以简化为year % 4 == 0,只要您只处理1901年到2099年。
year % 4 == 0
6ojccjat2#
以year = 100为例,第一条语句返回false,第二条语句返回true。括号中的第二个or语句不需要,因此可以将其视为对三个条件的单独简单检查。
year = 100
2条答案
按热度按时间qnyhuwrf1#
这是否简化为
a or ( b or c' )
?不,你可以通过建立一个真值表来了解这一点。
我们 * 可以 * 将
and
更改为or
。所以
变成
没有用,除了显示它不等价于
a or ( b or c' )
。我们可以使用相同的方法将
and
更改为or
。变成
再说一遍,没用。
它可以简化为
year % 4 == 0
,只要您只处理1901年到2099年。6ojccjat2#
以
year = 100
为例,第一条语句返回false,第二条语句返回true。括号中的第二个
or
语句不需要,因此可以将其视为对三个条件的单独简单检查。