为了账号安全,请及时绑定邮箱和手机立即绑定

无法理解两个方程之间的区别

无法理解两个方程之间的区别

largeQ 2022-07-21 10:17:39
我是 Javascript 新手,一直在尝试找出闰年计算器的最佳方程式。我写了这样的解决方案:if ((year % 4 ===0 && year % 100 !==0) || (year % 4 ===0 && year % 100 ===0 && year % 400 ===0)) {  alert("Leap");} else {  alert("Not Leap");}完成后,我用谷歌搜索了其他方法,发现可以这样写:if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 ===0)) {  alert("Leap");} else {  alert("Not Leap");}但我不明白怎么可以这样写,因为知道闰年的条件:如果年份能被 4 整除且不能被 100 整除 = Leap如果年份可以被 4 整除并且可以被 100 整除并且可以被 400 整除 = Leap否则它不是闰年。我不明白第二个代码示例背后的逻辑,对我来说,就好像:如果年份能被 4 整除且不能被 100 整除 = Leap或者仅当年份可被 400 整除 = 闰(不包括其他条件)否则不是闰年有人可以解释为什么第二个代码示例也有效,以及它是如何解释的?
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

闰年的条件是年份能被 4 而不是 100 整除,或者年份能被 400 整除。

在数学上,任何能被 400 整除的东西都可以被 4 和 100 整除,这就是闰年是 if (x % 4 AND NOT x % 100) OR (x % 400) 的原因。

你可以看到它像这个因子分解:400 = 4 * 100,所以任何可以写成的数字都可以n * 400写成n * 4 * 100,所以你的条件只是多余的。


查看完整回答
反对 回复 2022-07-21
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信