该程序是关于寻找the年的,但我听不懂逻辑:
if(year%4==0 and not year%100==0 or year%4==0 and year%100==0 and year%400==0)
请帮助我理解逻辑(我知道!
,||
和&&
运算符的工作原理。)
答案 0 :(得分:2)
这段代码试图了解您提供的年份是否是
year%4==0
,不能被除以100,因此year%4==0 and year%100==0 and year%100==0
或者,如果:
year%400==0
如果添加几个方括号,整个表达式将更具可读性:
if( (year%4==0 and not year%100==0) or (year%4==0 and year%100==0 and year%400==0) )
注释:整个表达式可以简化。由于可以被400整除的数字也可以被4和100整除,因此您可以这样写:
if( (year%4==0 and not year%100==0) or year%400==0 )
答案 1 :(得分:0)
确定一年是否为a年的算法如下:
例如,1700、1800和1900年不是leap年,而1600和2000年是were年。